Блог пользователя hrithikjos56

Автор hrithikjos56, история, 4 года назад, По-английски

Problem link

https://codeforces.net/contest/1351/problem/C

submission link https://codeforces.net/contest/1351/submission/109952345

include <bits/stdc++.h>

using namespace std;

define ios ios::sync_with_stdio(false); cin.tie(NULL);

define ll long long

define MOD 1000000007

int main() { ios;

ll t;

cin>>t;

while(t--) 
 {

string s;  

  cin>>s;

ll x = 0,y=0,n = s.size();

map<pair<ll,ll>,bool>mp;

ll ans = 0;

for(ll i=0;i<n;i++)

{

   mp[{x,y}] = 1;

    if(s[i] == 'N') y+= 1;

    else if(s[i] == 'S') y -= 1;

    else if(s[i] == 'E') x += 1;

    else if(s[i] == 'W') x -= 1;


    if(mp[{x,y}] == 1)   

      ans += 1;

    else 

       ans += 5;  

}

   cout<<ans<<endl;

 }

return 0;

}

  • Проголосовать: нравится
  • -15
  • Проголосовать: не нравится

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

You should reset the map 'mp' to all 0,or there are probably some '1's at first.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

You need to mark a particular segment ((x1,y1)->(x2,y2)) as visited not just the coordinate.