提出 #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
結果
AC × 1
AC × 33
セット名 テストケース
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