提出 #38265522
ソースコード 拡げる
#pragma GCC optimize("-Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma")
#pragma GCC optimize("unroll-loops")
// #include <atcoder/all>
// #include <bits/stdc++.h>
#include <complex>
#include <queue>
#include <set>
#include <unordered_set>
#include <list>
#include <chrono>
#include <random>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
#include <stack>
#include <iomanip>
#include <fstream>
using namespace std;
// using namespace atcoder;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> p32;
typedef pair<ll, ll> p64;
typedef pair<p64, p64> pp64;
typedef pair<double, double> pdd;
typedef vector<ll> v64;
typedef vector<int> v32;
typedef vector<vector<int>> vv32;
typedef vector<vector<ll>> vv64;
typedef vector<vector<p64>> vvp64;
typedef vector<p64> vp64;
typedef vector<p32> vp32;
typedef pair<ll, p64> tp;
ll MOD = 998244353;
double eps = 1e-12;
#define forn(i, e) for (ll i = 0; i < e; i++)
#define forsn(i, s, e) for (ll i = s; i < e; i++)
#define rforn(i, s) for (ll i = s; i >= 0; i--)
#define rforsn(i, s, e) for (ll i = s; i >= e; i--)
#define ln '\n'
#define dbg(x) cout << #x << " = " << x << ln
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define INF 1e18
#define fast_cin() \
ios_base::sync_with_stdio(false); \
cin.tie(NULL); \
cout.tie(NULL)
#define all(x) (x).begin(), (x).end()
#define sz(x) ((ll)(x).size())
#define zero ll(0)
#define set_bits(x) __builtin_popcountll(x)
// #define mint modint998244353
ll mpow(ll a, ll b)
{
if (a == 0)
return 0;
if (b == 0)
return 1;
ll t1 = mpow(a, b / 2);
t1 *= t1;
t1 %= MOD;
if (b % 2)
t1 *= a;
t1 %= MOD;
return t1;
}
ll mpow(ll a, ll b, ll p)
{
if (a == 0)
return 0;
if (b == 0)
return 1;
ll t1 = mpow(a, b / 2, p);
t1 *= t1;
t1 %= p;
if (b % 2)
t1 *= a;
t1 %= p;
return t1;
}
ll modinverse(ll a, ll m)
{
ll m0 = m;
ll y = 0, x = 1;
if (m == 1)
return 0;
while (a > 1)
{
ll q = a / m;
ll t = m;
m = a % m, a = t;
t = y;
y = x - q * y;
x = t;
}
if (x < 0)
x += m0;
return x;
}
mt19937_64 mt(chrono::steady_clock::now().time_since_epoch().count());
ll range(ll l, ll r)
{
return l + mt() % (r - l + 1);
}
ll rev(ll v)
{
return mpow(v, MOD - 2);
}
ll nc2(ll n)
{
return (n * (n - 1)) / 2;
}
ll n,z;
bool query(ll i, ll j, ll k){
if(i==k || j==k) return true;
cout << "? " << i+1 << " " << j+1 << " " << k+1 << endl;
string s;
cin >> s;
if(s=="Yes") return true;
else if(s=="No") return false;
else exit(0);
}
bool mless(ll i, ll j){
if(!query(i,z,j)) return true;
else return false;
}
void find_zero(){
forn(i,n){
if(query(z,z,i)) z=i;
}
}
void solve()
{
cin >> n;
find_zero();
v64 v;
v.pb(0);
forsn(i,1,n){
ll l=0, r=sz(v);
while(l<r){
ll mid = (l+r)/2;
if(mless(i,v[mid])){
r = mid;
}
else l=mid+1;
}
v64 tmp;
forn(k,l) tmp.pb(v[k]);
tmp.pb(i);
forsn(k,l,sz(v)) tmp.pb(v[k]);
v=tmp;
}
v64 ans(n);
forn(i,n){
ans[v[i]]=i+1;
}
cout << "! ";
for(auto it : ans) cout << it << " ";
cout << endl;
}
int main()
{
// fast_cin();
ll t=1;
// cin >> t;
forn(i, t)
{
// cout << "Case #" << i+1 << ": ";
solve();
}
return 0;
}
提出情報
| 提出日時 |
|
| 問題 |
D - A + B > C ? |
| ユーザ |
shubham__36 |
| 言語 |
C++ (Clang 10.0.0) |
| 得点 |
700 |
| コード長 |
3527 Byte |
| 結果 |
AC |
| 実行時間 |
165 ms |
| メモリ |
3652 KiB |
コンパイルエラー
./Main.cpp:1:13: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma GCC optimize("-Ofast")
^
./Main.cpp:2:13: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma")
^
./Main.cpp:3:13: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma GCC optimize("unroll-loops")
^
3 warnings generated.
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
700 / 700 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
example_00.txt |
| All |
example_00.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| example_00.txt |
AC |
12 ms |
3544 KiB |
| test_00.txt |
AC |
160 ms |
3612 KiB |
| test_01.txt |
AC |
165 ms |
3492 KiB |
| test_02.txt |
AC |
162 ms |
3492 KiB |
| test_03.txt |
AC |
162 ms |
3596 KiB |
| test_04.txt |
AC |
160 ms |
3608 KiB |
| test_05.txt |
AC |
162 ms |
3428 KiB |
| test_06.txt |
AC |
156 ms |
3652 KiB |
| test_07.txt |
AC |
160 ms |
3596 KiB |
| test_08.txt |
AC |
157 ms |
3500 KiB |
| test_09.txt |
AC |
160 ms |
3544 KiB |
| test_10.txt |
AC |
159 ms |
3512 KiB |
| test_11.txt |
AC |
163 ms |
3616 KiB |
| test_12.txt |
AC |
161 ms |
3492 KiB |
| test_13.txt |
AC |
165 ms |
3592 KiB |
| test_14.txt |
AC |
161 ms |
3596 KiB |
| test_15.txt |
AC |
151 ms |
3488 KiB |
| test_16.txt |
AC |
155 ms |
3432 KiB |
| test_17.txt |
AC |
117 ms |
3512 KiB |
| test_18.txt |
AC |
130 ms |
3408 KiB |
| test_19.txt |
AC |
74 ms |
3496 KiB |
| test_20.txt |
AC |
59 ms |
3468 KiB |
| test_21.txt |
AC |
56 ms |
3388 KiB |
| test_22.txt |
AC |
54 ms |
3496 KiB |
| test_23.txt |
AC |
54 ms |
3548 KiB |
| test_24.txt |
AC |
58 ms |
3608 KiB |
| test_25.txt |
AC |
34 ms |
3556 KiB |
| test_26.txt |
AC |
118 ms |
3568 KiB |
| test_27.txt |
AC |
115 ms |
3484 KiB |
| test_28.txt |
AC |
77 ms |
3580 KiB |
| test_29.txt |
AC |
58 ms |
3500 KiB |
| test_30.txt |
AC |
111 ms |
3588 KiB |
| test_31.txt |
AC |
6 ms |
3520 KiB |