|  | 
|  | 
| back to board | Help Please WA5! why?
 code:
 
 # include <bits/stdc++.h>
 
 using namespace std;
 
 int gcd(int a, int b)
 {
 int c;
 if(a < b)
 swap(a, b);
 while(1)
 {
 a = a % b;
 if(a == 0)
 return b;
 c = a;
 a = b;
 b = c;
 }
 }
 
 set <int> gtx;
 map <int, int> bot;
 map <set <int>, int> gg;
 
 int main()
 {
 ios_base::sync_with_stdio(0);
 int q, a, s, i;
 char x;
 cin >> q;
 
 for(i = 1; i <= q; i++)
 {
 cin >> x >> a;
 if(x == '+')
 {
 bot[a]++;
 gtx.insert(a);
 
 if(gg[gtx])
 cout << gg[gtx] << '\n';
 else if(gtx.size() == 1)
 {
 s = a;
 gg[gtx] = s;
 cout << s << '\n';
 }
 else
 {
 s = gcd(s, a);
 gg[gtx] = s;
 cout << s << '\n';
 }
 }
 else
 {
 bot[a]--;
 if(bot[a] == 0)
 gtx.erase(a);
 if(gtx.size() == 0)
 {
 cout << 1 << '\n';
 continue;
 }
 if(gg[gtx])
 cout << gg[gtx] << '\n';
 else
 {
 set <int> :: iterator j = gtx.begin();
 s = *j;
 for( ; j != gtx.end(); j++)
 s = gcd(s, *j);
 gg[gtx] = s;
 cout << s << '\n';
 }
 }
 }
 return 0;
 }
 
 Edited by author 05.03.2019 16:25
 | 
 | 
|