제출 #1307679

#제출 시각아이디문제언어결과실행 시간메모리
1307679KhoaDuyPictionary (COCI18_pictionary)C++20
140 / 140
253 ms4292 KiB
#include<bits/stdc++.h> using namespace std; #define endl '\n' #define ll long long const int MAXN=1e5; int dsu[MAXN+1]; int Findset(int i){ if(dsu[i]<0){ return i; } int root=Findset(dsu[i]); dsu[i]=root; return root; } void unite(int u,int v){ u=Findset(u),v=Findset(v); if(u==v){ return; } if(dsu[u]<dsu[v]){ swap(u,v); } dsu[v]+=dsu[u]; dsu[u]=v; } signed main(){ if(fopen("input.txt","r")){ freopen("input.txt","r",stdin); } ios_base::sync_with_stdio(false); cin.tie(NULL); int n,m,q; cin >> n >> m >> q; int a[q],b[q],low[q],high[q]; for(int i=0;i<q;i++){ cin >> a[i] >> b[i]; low[i]=1,high[i]=m; low[i]--,high[i]++; } while(true){ vector<pair<int,int>> que; for(int i=0;i<q;i++){ if(high[i]-low[i]==1){ continue; } int mid=((high[i]-low[i])>>1)+low[i]; que.push_back({mid,i}); } if(que.empty()){ break; } memset(dsu,-1,sizeof(dsu)); sort(que.begin(),que.end()); int ptr=-1; bool ans[q]={false}; for(int i=1;i<=m;i++){ int x=m-i+1; for(int y=2*x;y<=n;y+=x){ unite(x,y); } while(ptr+1<que.size()&&que[ptr+1].first==i){ ptr++; int idx=que[ptr].second; if(Findset(a[idx])==Findset(b[idx])){ ans[idx]=true; } } } for(int i=0;i<q;i++){ if(high[i]-low[i]==1){ continue; } int mid=((high[i]-low[i])>>1)+low[i]; if(ans[i]){ high[i]=mid; } else{ low[i]=mid; } } } for(int i=0;i<q;i++){ cout << high[i] << endl; } }

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

pictionary.cpp: In function 'int main()':
pictionary.cpp:28:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |         freopen("input.txt","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#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...
#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...