結果
| 問題 |
No.282 おもりと天秤(2)
|
| コンテスト | |
| ユーザー |
IL_msta
|
| 提出日時 | 2015-09-19 18:56:32 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,016 bytes |
| コンパイル時間 | 1,105 ms |
| コンパイル使用メモリ | 97,796 KB |
| 実行使用メモリ | 25,352 KB |
| 平均クエリ数 | 784.04 |
| 最終ジャッジ日時 | 2024-07-16 06:21:09 |
| 合計ジャッジ時間 | 13,035 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 WA * 1 TLE * 1 -- * 12 |
ソースコード
#define _USE_MATH_DEFINES
#include <iostream>
#include <iomanip>
#include <sstream>
#include <algorithm>
#include <cmath>
#include <string>
#include <queue>
#include <vector>
#include <complex>
#include <set>
#include <map>
#include <stack>
#include <list>
/////////
#define REP(i, x, n) for(int i = x; i < n; i++)
#define rep(i,n) REP(i,0,n)
#define P(p) cout<<(p)<<endl;
#define PII pair<int,int>
/////////
typedef long long LL;
typedef long double LD;
/////////
using namespace::std;
/////////
void solve(){
int N;
cin >> N;
vector< vector<int> > v(N,vector<int>(N) );
int h = N-1;
vector<bool> use(N,false);
vector<int> rank(N,0);
int cnt = 0;
for(int i=1;i<=h;++i){
for(int T=0;T<=i && T+i<N;++T){
use = vector<bool>(N,false);
cnt = 0;
cout << "?";
for(int j=T;j+i<N;++j){
if( use[j] ) continue;
if( (j+i) < N ){
cout << " " << j+1 << " " << (j+i)+1;
use[j] = true;
use[(j+i)] = true;
}else{
cout << " " << j+1 << " 0";
use[j] = true;
}
++cnt;
}
for(int k=cnt;k<N;++k){
cout << " 0 0";
}
cout << endl;
use = vector<bool>(N,false);
string str;
for(int j=T;j+i<N;++j){
if( use[j] ) continue;
cin >> str;
if( (j+i) < N ){
if( str == "<" ){
if( v[j][(j+i)] == v[(j+i)][j] ){
v[j][(j+i)] = true;
v[(j+i)][j] = false;
++rank[(j+i)];
}
}else if( str == ">" ){
if( v[j][(j+i)] == v[(j+i)][j] ){
v[j][(j+i)] = false;
v[(j+i)][j] = true;
++rank[j];
}
}
use[j] = true;
use[(j+i)] = true;
}else{
use[j] = true;
}
}
for(int k=cnt;k<N;++k){
cin >> str;
}
}
}
vector<int> ret(N,0);
for(int i=0;i<N;++i){
ret[ rank[i] ] = i+1;
}
cout << "!";
for(int i=0;i<N;++i){
cout << " " << ret[i];
}
cout << endl;
}
int main(void){
std::cin.tie(0);
std::ios::sync_with_stdio(false);
std::cout << std::fixed;//
//cout << setprecision(16);//
//cpp
solve();
return 0;
}
IL_msta