QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#865661#866. Display of SpringsASnownTL 5ms3840kbC++171.8kb2025-01-21 20:55:322025-01-21 20:55:33

Judging History

This is the latest submission verdict.

  • [2025-01-21 20:55:33]
  • Judged
  • Verdict: TL
  • Time: 5ms
  • Memory: 3840kb
  • [2025-01-21 20:55:32]
  • Submitted

answer

#include<bits/stdc++.h>
#define file(F) freopen(#F".in","r",stdin),freopen(#F".out","w",stdout)
#define lowbit(x) ((x)&-(x))
#define ALL(x) (x).begin(),(x).end()
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define popc(x) (__builtin_popcountll((x)))
#define abs(x) ((x)>=0?(x):-(x))
using namespace std;
using ll=long long;
using uint=uint32_t;
namespace asnown {
using i32=int32_t; using u32=uint32_t;
using i64=int64_t; using u64=uint64_t;
using i128=__int128_t; using u128=__uint128_t; };
template<typename T>
inline bool Max(T &x,T y) { return std::less<T>()(x,y)&&(x=y,true); }
template<typename T>
inline bool Min(T &x,T y) { return std::less<T>()(y,x)&&(x=y,true); }
void Solve();
const int N = 1e5+15;
namespace SGT {
inline bool cmp(int p,int q,int x) {
   if(!p||!q) return bool(p);
   printf("? %d %d %d\n",p-1,q-1,x); fflush(stdout);
   string res; cin>>res;
   return res=="FIRST";
}
const int N = ::N<<2;
#define mid ((L+R)>>1)
#define ls (u<<1)
#define rs (ls|1)
int d[N];
void update(int u,int L,int R,int k) {
   if(cmp(k,d[u],mid)) swap(k,d[u]);
   if(L==R) return ;
   if(cmp(k,d[u],L)) update(ls,L,mid,k);
   if(cmp(k,d[u],R)) update(rs,mid+1,R,k);
}
int query(int u,int L,int R,int x) {
   if(L==R) return d[u];
   int p=(x<=mid?query(ls,L,mid,x):query(rs,mid+1,R,x));
   return cmp(d[u],p,x)?d[u]:p;
}
#undef mid
#undef ls
#undef rs
}
signed main() {
#ifndef ONLINE_JUDGE
#endif
   cin.tie(nullptr)->sync_with_stdio(false);
   Solve();
}
void Solve() {
   int n; cin>>n;
   for(int i=1;i<=n;i++) SGT::update(1,1,1e5,i);
   puts("!"); fflush(stdout);
   while(true) {
      string op; cin>>op;
      if(op=="FINISH") break;
      int w; cin>>w;
      printf("! %d\n",SGT::query(1,1,1e5,w)-1); fflush(stdout);
   }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3712kb

input:

3
FIRST
SECOND
SECOND
FIRST
FIRST
SECOND
QUESTION 2
SECOND
QUESTION 6
FIRST
FINISH

output:

? 1 0 50000
? 0 1 1
? 0 1 100000
? 2 1 50000
? 1 2 1
? 1 2 100000
!
? 2 1 2
! 1
? 2 1 6
! 2

result:

ok Correct answer

Test #2:

score: 0
Accepted
time: 0ms
memory: 3584kb

input:

6
FIRST
EQUAL
SECOND
FIRST
FIRST
SECOND
FIRST
FIRST
FIRST
FIRST
SECOND
SECOND
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
SECOND
SECOND
SECOND
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
SECOND
SECOND
SECOND
SECOND
QUESTION 1
SECOND
SECOND
SECOND
SECOND
QUESTION 2
EQUAL
SECOND
SECOND
SECOND
QUESTION 3
F...

output:

? 1 0 50000
? 0 1 1
? 0 1 100000
? 2 1 50000
? 1 2 1
? 1 2 100000
? 3 2 50000
? 2 3 1
? 2 1 25000
? 1 2 1
? 1 2 50000
? 2 3 100000
? 4 3 50000
? 3 4 1
? 3 2 25000
? 2 3 1
? 2 1 12500
? 1 2 1
? 1 2 25000
? 2 3 50000
? 3 4 100000
? 5 4 50000
? 4 5 1
? 4 3 25000
? 3 4 1
? 3 2 12500
? 2 3 1
? 2 1 6250
?...

result:

ok Correct answer

Test #3:

score: 0
Accepted
time: 2ms
memory: 3712kb

input:

326
SECOND
SECOND
SECOND
SECOND
FIRST
SECOND
FIRST
FIRST
FIRST
FIRST
SECOND
SECOND
SECOND
FIRST
SECOND
FIRST
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
FIRST
SECOND
SECOND
SECOND
SECOND
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND...

output:

? 1 0 50000
? 1 0 1
? 1 0 100000
? 2 0 50000
? 2 0 1
? 2 0 100000
? 3 0 50000
? 0 3 1
? 0 2 25000
? 2 0 1
? 2 0 50000
? 0 3 100000
? 4 3 50000
? 4 3 1
? 4 0 25000
? 4 0 1
? 4 2 12500
? 2 4 1
? 2 4 25000
? 4 0 50000
? 4 3 100000
? 5 3 50000
? 5 3 1
? 5 3 100000
? 6 3 50000
? 6 3 1
? 6 0 25000
? 6 0 1...

result:

ok Correct answer

Test #4:

score: 0
Accepted
time: 2ms
memory: 3840kb

input:

19
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
FIRST
FIRST
SECOND
SECOND
SECOND
SECOND
FIRST
SECOND
SECOND
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SE...

output:

? 1 0 50000
? 0 1 1
? 0 1 100000
? 2 1 50000
? 2 1 1
? 2 1 100000
? 3 1 50000
? 3 1 1
? 3 1 100000
? 4 1 50000
? 4 1 1
? 4 1 100000
? 5 1 50000
? 5 1 1
? 5 1 100000
? 6 1 50000
? 1 6 1
? 1 6 100000
? 7 6 50000
? 7 6 1
? 7 6 100000
? 8 6 50000
? 6 8 1
? 6 8 100000
? 9 8 50000
? 8 9 1
? 8 9 100000
? 1...

result:

ok Correct answer

Test #5:

score: 0
Accepted
time: 5ms
memory: 3712kb

input:

500
FIRST
SECOND
SECOND
FIRST
SECOND
SECOND
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND...

output:

? 1 0 50000
? 0 1 1
? 0 1 100000
? 2 1 50000
? 1 2 1
? 1 2 100000
? 3 2 50000
? 2 3 1
? 2 3 100000
? 4 3 50000
? 4 3 1
? 4 3 100000
? 5 3 50000
? 5 3 1
? 5 3 100000
? 6 3 50000
? 6 3 1
? 6 3 100000
? 7 3 50000
? 3 7 1
? 3 7 100000
? 8 7 50000
? 8 7 1
? 8 7 100000
? 9 7 50000
? 9 7 1
? 9 7 100000
? 1...

result:

ok Correct answer

Test #6:

score: 0
Accepted
time: 3ms
memory: 3840kb

input:

500
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQUAL
EQ...

output:

? 1 0 50000
? 1 0 1
? 1 0 100000
? 2 0 50000
? 2 0 1
? 2 0 100000
? 3 0 50000
? 3 0 1
? 3 0 100000
? 4 0 50000
? 4 0 1
? 4 0 100000
? 5 0 50000
? 5 0 1
? 5 0 100000
? 6 0 50000
? 6 0 1
? 6 0 100000
? 7 0 50000
? 7 0 1
? 7 0 100000
? 8 0 50000
? 8 0 1
? 8 0 100000
? 9 0 50000
? 9 0 1
? 9 0 100000
? 1...

result:

ok Correct answer

Test #7:

score: 0
Accepted
time: 4ms
memory: 3712kb

input:

500
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
SECON...

output:

? 1 0 50000
? 0 1 1
? 0 1 100000
? 2 1 50000
? 2 1 1
? 2 1 100000
? 3 1 50000
? 1 3 1
? 1 3 100000
? 4 3 50000
? 4 3 1
? 4 3 100000
? 5 3 50000
? 5 3 1
? 5 3 100000
? 6 3 50000
? 6 3 1
? 6 3 100000
? 7 3 50000
? 7 3 1
? 7 3 100000
? 8 3 50000
? 8 3 1
? 8 3 100000
? 9 3 50000
? 9 3 1
? 9 3 100000
? 1...

result:

ok Correct answer

Test #8:

score: 0
Accepted
time: 2ms
memory: 3840kb

input:

500
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
SE...

output:

? 1 0 50000
? 1 0 1
? 1 0 100000
? 2 0 50000
? 2 0 1
? 2 0 100000
? 3 0 50000
? 3 0 1
? 3 0 100000
? 4 0 50000
? 4 0 1
? 4 0 100000
? 5 0 50000
? 5 0 1
? 5 0 100000
? 6 0 50000
? 6 0 1
? 6 0 100000
? 7 0 50000
? 7 0 1
? 7 0 100000
? 8 0 50000
? 8 0 1
? 8 0 100000
? 9 0 50000
? 9 0 1
? 9 0 100000
? 1...

result:

ok Correct answer

Test #9:

score: 0
Accepted
time: 2ms
memory: 3840kb

input:

2
FIRST
FIRST
SECOND
QUESTION 64500
QUESTION 22602
FIRST
QUESTION 37446
FIRST
QUESTION 97972
QUESTION 78630
QUESTION 75591
QUESTION 63328
QUESTION 64746
QUESTION 94532
QUESTION 51275
QUESTION 12189
FIRST
QUESTION 64341
QUESTION 85825
QUESTION 63713
QUESTION 36778
FIRST
QUESTION 27116
FIRST
QUESTION ...

output:

? 1 0 50000
? 0 1 1
? 0 1 100000
!
! 1
? 1 0 22602
! 1
? 1 0 37446
! 1
! 1
! 1
! 1
! 1
! 1
! 1
! 1
? 1 0 12189
! 1
! 1
! 1
! 1
? 1 0 36778
! 1
? 1 0 27116
! 1
? 1 0 18630
! 1
! 1
? 1 0 28074
! 1
! 1
! 1
? 1 0 39195
! 1
! 1
? 1 0 1182
! 1
! 1
! 1
! 1
? 1 0 7017
! 1
? 1 0 13589
! 1
! 1
! 1
? 1 0 48324...

result:

ok Correct answer

Test #10:

score: 0
Accepted
time: 1ms
memory: 3840kb

input:

2
FIRST
FIRST
SECOND
QUESTION 54311
QUESTION 8466
SECOND
QUESTION 82055
QUESTION 65419
QUESTION 5271
SECOND
QUESTION 4799
SECOND
QUESTION 21521
FIRST
QUESTION 66767
QUESTION 24897
FIRST
QUESTION 69127
QUESTION 84527
QUESTION 23303
FIRST
QUESTION 88924
QUESTION 56421
QUESTION 88108
QUESTION 74033
QUE...

output:

? 1 0 50000
? 0 1 1
? 0 1 100000
!
! 1
? 1 0 8466
! 0
! 1
! 1
? 1 0 5271
! 0
? 1 0 4799
! 0
? 1 0 21521
! 1
! 1
? 1 0 24897
! 1
! 1
! 1
? 1 0 23303
! 1
! 1
! 1
! 1
! 1
? 1 0 25348
! 1
? 1 0 10105
! 0
! 1
? 1 0 33359
! 1
? 1 0 49782
! 1
? 1 0 20392
! 1
! 1
! 1
? 1 0 4246
! 0
! 1
? 1 0 8620
! 0
? 1 0 ...

result:

ok Correct answer

Test #11:

score: -100
Time Limit Exceeded

input:

500
SECOND
FIRST
SECOND
FIRST
FIRST
FIRST
FIRST
SECOND
SECOND
SECOND
FIRST
FIRST
FIRST
FIRST
FIRST
SECOND
SECOND
SECOND
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
FIRST
SECOND
SECOND
SECOND
SECOND
SECOND
SECOND
F...

output:

? 1 0 50000
? 1 0 1
? 1 0 100000
? 2 0 50000
? 0 2 1
? 0 1 25000
? 1 0 1
? 1 0 50000
? 0 2 100000
? 3 2 50000
? 3 2 1
? 3 0 25000
? 0 3 1
? 0 1 12500
? 1 0 1
? 1 0 25000
? 0 3 50000
? 3 2 100000
? 4 2 50000
? 2 4 1
? 2 3 25000
? 3 2 1
? 3 0 12500
? 0 3 1
? 0 1 6250
? 1 0 1
? 1 0 12500
? 0 3 25000
? ...

result: