Submission #880605

#TimeUsernameProblemLanguageResultExecution timeMemory
880605heeheeheehaawCollider (IZhO11_collider)C++17
100 / 100
78 ms8592 KiB
#include <bits/stdc++.h> using namespace std; vector<int> buckets[10005]; int v[1000005]; char tochar[] = {0, 'x', 'y', 'z', 'x'}; int main() { int n, m, sqn; cin>>n>>m; sqn = (int)sqrt(n); int cnt = 1; for(int i = 1; i <= n; i++) { char c; cin>>c; if(c == 'x') v[i] = 1; else if(c == 'y') v[i] = 2; else v[i] = 3; buckets[cnt].push_back(v[i]); if(i % sqn == 0) cnt++; } for(int i = 1; i <= m; i++) { char tip; cin>>tip; if(tip == 'a') { int a, b; cin>>a>>b; if(a == b) continue; int sum = 0, val, poz1, poz2, idx1, idx2; for(int j = 1; j <= cnt; j++) { if(a > sum && a <= sum + buckets[j].size()) { val = buckets[j][a - sum - 1]; idx1 = j; poz1 = a - sum - 1; } if(b > sum && b <= sum + buckets[j].size()) { idx2 = j; poz2 = b - sum - 1; } sum += buckets[j].size(); } //cout<<poz1<<" "<<poz2<<'\n'; if(a < b) { if(idx1 == idx2) { buckets[idx1].erase(buckets[idx1].begin() + poz1); buckets[idx2].insert(buckets[idx2].begin() + poz2, val); } else { buckets[idx1].erase(buckets[idx1].begin() + poz1); buckets[idx2].insert(buckets[idx2].begin() + poz2 + 1, val); } } else { if(idx1 == idx2) { buckets[idx1].erase(buckets[idx1].begin() + poz1); buckets[idx2].insert(buckets[idx2].begin() + poz2, val); } else { buckets[idx1].erase(buckets[idx1].begin() + poz1); buckets[idx2].insert(buckets[idx2].begin() + poz2, val); } } /*for(int j = 1; j <= cnt; j++) { cout<<buckets[j].size()<<": "; for(auto k : buckets[j]) cout<<tochar[k]; cout<<'\n'; } cout<<'\n';*/ } else { int a; cin>>a; int sum = 0, val; for(int j = 1; j <= cnt; j++) { if(a > sum && a <= sum + buckets[j].size()) { val = buckets[j][a - sum - 1]; break; } sum += buckets[j].size(); } cout<<tochar[val]<<'\n'; } } return 0; }

Compilation message (stderr)

collider.cpp: In function 'int main()':
collider.cpp:42:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |                 if(a > sum && a <= sum + buckets[j].size())
      |                               ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
collider.cpp:48:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |                 if(b > sum && b <= sum + buckets[j].size())
      |                               ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
collider.cpp:102:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  102 |                 if(a > sum && a <= sum + buckets[j].size())
      |                               ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
collider.cpp:111:29: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized]
  111 |             cout<<tochar[val]<<'\n';
      |                   ~~~~~~~~~~^
collider.cpp:60:17: warning: 'idx2' may be used uninitialized in this function [-Wmaybe-uninitialized]
   60 |                 if(idx1 == idx2)
      |                 ^~
collider.cpp:60:17: warning: 'idx1' may be used uninitialized in this function [-Wmaybe-uninitialized]
#Verdict Execution timeMemoryGrader output
Fetching results...