제출 #1041696

#제출 시각아이디문제언어결과실행 시간메모리
1041696vjudge1Tenis (COI19_tenis)C++17
18 / 100
203 ms524288 KiB
#warning Check FastIO #ifdef ONLINE_JUDGE #pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #endif #include <iostream> #include <algorithm> #include <climits> #include <queue> #include <cmath> #include <map> #include <set> #include <random> #include <chrono> #include <iomanip> #include <vector> #include <fstream> using namespace std; #define vll vector<ll> #define sll set<ll> #define vstr vector<string> #define ll int #define ld long double #define supra main #define pb push_back #define add insert #define rall(x) rbegin(x),rend(x) #define I ios_base::sync_with_stdio(false); #define Hear cin.tie(NULL); #define Shots cout.tie(NULL); #define Ratatatata #define bits_on(a) (__builtin_popcountll(a)) #define mx_pw2(a) (__builtin_ctzll(a)) mt19937 RNG(chrono::steady_clock::now().time_since_epoch().count()); #define SHUFFLE(v) shuffle(all(v), RNG); const ll inf=LLONG_MAX; void input(vll& a) { for(auto& i:a) cin>>i; } void pyn(bool a) { cout<<(a?"YES":"NO")<<endl; } ll powmod(ll a,ll b,ll modulo) { if(b==0){ return 1; } ll temp=powmod(a,b/2,modulo); if(b%2==0){ return (temp*temp)%modulo; } else{ return (a*((temp*temp)%modulo))%modulo; } } bool Prime(ll n){ for (ll i = 2; i*i <= n; i++) if (n % i == 0) return false; return (n>1); } #include <bitset> const int N=1e5+1; ll rank_of[N][3]; bitset<N> win[N]; bool won[N]; void solve() { ll n,q; cin>>n>>q; vector<ll> p[3]; for(int j=0;j<3;j++) { for(int i=0;i<n;i++) { ll x; cin>>x; win[x][x]=1; p[j].push_back(x); rank_of[x][j]=n-i; } } for(int pl=0;pl<10;pl++) { for(int j=0;j<3;j++) { for(int k=n-2;k>=0;k--) { win[p[j][k]]|=win[p[j][k+1]]; } } } for(ll x=1;x<=n;x++) won[x]=(win[x].count()==n); bool change=0; while(q--) { ll type; cin>>type; if(type==1) { ll x; cin>>x; if(!change) { if(won[x]) { cout<<"DA"<<endl; } else { cout<<"NE"<<endl; } continue; } ll skill[3]; skill[0]=rank_of[x][0]; skill[1]=rank_of[x][1]; skill[2]=rank_of[x][2]; bool change=1; vector<pair<ll,ll>> oth[3]; int ind[3]; for(int j=0;j<3;j++) { ind[j]=0; for(int i=1;i<=n;i++) { oth[j].push_back({rank_of[i][j],i}); } sort(begin(oth[j]),end(oth[j])); } ll kills=0; while(change) { change=0; for(int i=0;i<3;i++) { if(ind[i]<oth[i].size()) { auto it=oth[i][ind[i]]; if(it.first<skill[i]) { // We nailed it change=1; ll mp=it.second; kills++; skill[0]=max(skill[0],rank_of[mp][0]); skill[1]=max(skill[1],rank_of[mp][1]); skill[2]=max(skill[2],rank_of[mp][2]); ind[i]++; } } } } // cout<<"Query for "<<kills<<' '<<skill[0]<<' '<<skill[1]<<' '<<skill[2]<<endl; if(max({skill[0],skill[1],skill[2]})==n) { cout<<"DA"<<endl; } else { cout<<"NE"<<endl; } } else { change=1; ll tp,x,y; cin>>tp>>x>>y; tp--; swap(rank_of[x][tp],rank_of[y][tp]); } } } int supra(){ I Hear Shots Ratatatata ll tqwertyuiop=1; for(int tp=1;tp<=tqwertyuiop;tp++) { // cout<<"Case #"<<tp<<": "; solve(); } return 0; } /* Bro use only in a emergency this is kind of hacking #pragma GCC optimize("Ofast,unroll-loops") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native") */

컴파일 시 표준 에러 (stderr) 메시지

tenis.cpp:1:2: warning: #warning Check FastIO [-Wcpp]
    1 | #warning Check FastIO
      |  ^~~~~~~
tenis.cpp:36:14: warning: overflow in conversion from 'long long int' to 'int' changes value from '9223372036854775807' to '-1' [-Woverflow]
   36 | const ll inf=LLONG_MAX;
      |              ^~~~~~~~~
tenis.cpp: In function 'void solve()':
tenis.cpp:98:25: warning: comparison of integer expressions of different signedness: 'std::size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   98 |   won[x]=(win[x].count()==n);
      |           ~~~~~~~~~~~~~~^~~
tenis.cpp:142:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  142 |      if(ind[i]<oth[i].size())
      |         ~~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...