Advertisement
fooker

P1800F2, F2 for failed twice

Mar 3rd, 2023
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. int main()
  5. {
  6.     ll n;
  7.     cin>>n;
  8.     pair <ll,string> p[n+1];
  9.     for (ll i=1; i<=n; i++){
  10.         string s;
  11.         cin>>s;
  12.         ll x=s.length();
  13.         map <char,ll> mp;
  14.         for (ll i=0; i<x; i++){
  15.             mp[s[i]]++;
  16.         }
  17.         string y="";
  18.         for (ll i=97; i<=122; i++){
  19.             y += to_string((mp[(char)i]==0)?(0):((mp[(char)i]%2)?(1):(2)));
  20.         }
  21.         // debugger(1)
  22.         // cout<<"x = "<<x<<"\n";
  23.         // cout<<"y = "<<y<<"\n";
  24.         p[i] = make_pair(x,y);
  25.     }
  26.     ll ans=0;
  27.     // cout<<"pairs generated, n^2 iterations begin\n";
  28.     for (ll i=1; i<n; i++){
  29.         for (ll j=i+1; j<=n; j++){
  30.             // debugger(2)
  31.             // cout<<"for the iteration, i = "<<i<<" and j = "<<j<<"\n";
  32.             if ((p[i].first+p[j].first)%2==0) continue;
  33.             // debugger(3)
  34.             // cout<<"odd length right? = "<<(p[i].first+p[j].first)%2<<"\n";
  35.             string s="";
  36.             for (ll k=0; k<26; k++){
  37.                 ll z=(p[i].second)[k]-48+(p[j].second)[k]-48;
  38.                 s += to_string((z==0)?(0):((z%2)?(1):(2)));
  39.                 // debugger(4)
  40.                 // cout<<s<<"\n";
  41.             }
  42.             // cout<<"final string = "<<s<<"\n";
  43.             ll e=0, f=0;
  44.             for (ll k=0; k<26; k++){
  45.                 if (s[k]-48==0) e++;
  46.                 if (s[k]-48==2) f++;
  47.             }
  48.             // debugger(5)
  49.             // cout<<"e = "<<e<<"\n";
  50.             // cout<<"f = "<<f<<"\n";
  51.             if (e==1 && f==0) ans++;
  52.             // cout<<"ans = "<<ans<<"\n";
  53.         }
  54.     }
  55.     cout<<ans;
  56. }
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement