Advertisement
vssm

obi[2017] - codigo

Aug 19th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define fr(i, a, b) for(int i = a, _= b; i < _; i++)
  4. typedef pair<int, int> pii;
  5. map<string, vector<pii> > mp;
  6.  
  7. int main(){
  8.     vector<string> vs;
  9.     int n;
  10.     cin >> n;
  11.     cin.ignore();
  12.     fr(i, 0, n){
  13.         string s;
  14.         getline(cin, s);
  15.         vs.push_back(s);
  16.     }
  17.     vs[n-1].erase(10);
  18.     fr(i, 0, n-1)
  19.         fr(j, i, n-1){
  20.             string temp, t1, t2;
  21.             t1 = vs[i], t2 = vs[j];
  22.             temp = t1 + t2;
  23.             fr(k, 0, 11){
  24.                 mp[temp.substr(k, 10)].push_back(make_pair(i+1, j+1));
  25.             }
  26.  
  27.             temp.clear();
  28.             temp = t2+t1;
  29.             fr(k, 0, 11){
  30.                 mp[temp.substr(k, 10)].push_back(make_pair(j+1, i+1));
  31.             }
  32.  
  33.         }
  34.        
  35.     fr(i, 1, n){
  36.         vector<pii>::iterator j;
  37.         for(j = mp[vs[i]].begin(); j != mp[vs[i]].end(); j++)
  38.             if(j->first-1 < i && j->second-1 < i){
  39.                 cout << vs[i];
  40.                 return 0;
  41.             }
  42.     }
  43.  
  44.     cout << "ok";
  45.  
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement