| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1344229 | srividya_06 | Staring Contest (BOI23_staringcontest) | C++20 | 2025 ms | 412 KiB |
#include <bits/stdc++.h>
#define int long long
#define REP(i,a,b) for(int i = a; i<b; i++)
#define RREP(i,a,b) for(int i = a; i>b; i--)
using namespace std;
int INF = 1e18;
int32_t main() {
int n, val;
cin>>n;
vector<int> res(n);
if(n<=3){
REP(i,0,n-1){
REP(j,i+1,n){
cout<<"? "<<i+1<<' '<<j+1<<endl;
cin>>val;
res[i] = max(res[i],val);
res[j] = max(res[j],val);
}
}
}
else{
REP(i,0,2){
REP(j,i+1,3){
cout<<"? "<<i+1<<' '<<j+1<<endl;
cin>>val;
res[i] = max(res[i],val);
res[j] = max(res[j],val);
}
}
int mx = max_element(res.begin(),res.begin()+3)-res.begin();
REP(i,3,n){
if(i == mx) continue;
cout<<"? "<<mx+1<<' '<<i+1<<endl;
cin>>val;
if(val==res[mx]) {
res[i] = val;
mx = i;
i = -1;
}
else if(val>res[mx]){
res[mx] = val;
i = -1;
}
else res[i] = val;
}
}
cout<<"! ";
REP(i,0,n){
cout<<res[i]<<' ';
}
cout<<endl;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
