diff --git a/Distance and Displacement b/Distance and Displacement new file mode 100644 index 0000000..a35eeb8 --- /dev/null +++ b/Distance and Displacement @@ -0,0 +1,48 @@ +// { Driver Code Starts +// Initial Template for C++ + +#include <bits/stdc++.h> +using namespace std; + + // } Driver Code Ends + + +// User function Template for C++ + +class Solution{ +public: + int distance(int n, int a[], char d[]){ + // code here + int x=0,y=0,z=0; + for(int i=0;i<n;i++){ + if(d[i]=='N'){x+=a[i];} + else if(d[i]=='S'){x-=a[i];} + else if(d[i]=='E'){y-=a[i];} + else if(d[i]=='W'){y+=a[i];} + z+=a[i]; + } + z += ceil(sqrt(x*x + y*y)); + return z; + } +}; + +// { Driver Code Starts. + +int main(){ + int t; + cin>>t; + while(t--){ + int n; + cin>>n; + int a[n]; + char d[n]; + for(int i = 0;i < n;i++) + cin>>a[i]; + for(int i = 0;i < n;i++) + cin>>d[i]; + + Solution ob; + cout<<ob.distance(n, a, d)<<"\n"; + } + return 0; +} // } Driver Code Ends