QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#218641#6754. Selectioncurtain_cppWA 9ms4004kbC++143.3kb2023-10-18 16:11:522023-10-18 16:11:53

Judging History

你现在查看的是最新测评结果

  • [2023-10-18 16:11:53]
  • 评测
  • 测评结果:WA
  • 用时:9ms
  • 内存:4004kb
  • [2023-10-18 16:11:52]
  • 提交

answer

#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <map>
#include <cmath>
#include <queue>
#include <set>
#include <stack>
#include <unordered_map>
using namespace std;
typedef long long  LL;
typedef unsigned long long uLL;
typedef pair<LL,LL> PII;
const int N = 2e5+10;
const int inf = 0x3f3f3f3f;
const double pi = acos(-1);
#define debug(x) cout<<"[debug]"#x<<"="<<x<<'\n';
template <int T>
struct ModInt {
    const static int MD = T;
    int x;
    ModInt(LL x = 0)
        : x(x % MD) {}
    int get() { return x; }
    ModInt operator+(const ModInt& that) const {
        int x0 = x + that.x;
        return ModInt(x0 < MD ? x0 : x0 - MD);
    }
    ModInt operator-(const ModInt& that) const {
        int x0 = x - that.x;
        return ModInt(x0 < MD ? x0 + MD : x0);
    }
    ModInt operator*(const ModInt& that) const {
        return ModInt((long long)x * that.x % MD);
    }
    ModInt operator/(const ModInt& that) const {
        return *this * that.inverse();
    }
    void operator+=(const ModInt& that) {
        x += that.x;
        if (x >= MD)
            x -= MD;
    }
    void operator-=(const ModInt& that) {
        x -= that.x;
        if (x < 0)
            x += MD;
    }
    void operator*=(const ModInt& that) { x = (long long)x * that.x % MD; }
    void operator/=(const ModInt& that) { *this = *this / that; }
    ModInt inverse() const {
        int a = x, b = MD, u = 1, v = 0;
        while (b) {
            int t = a / b;
            a -= t * b;
            std::swap(a, b);
            u -= t * v;
            std::swap(u, v);
        }
        if (u < 0)
            u += MD;
        return u;
    }
    friend ostream& operator<<(ostream& os, ModInt x) {
        os << x.get();
        return os;
    }
};//全局变量记得清零!
const int mod=998244353;
typedef ModInt<mod> mint;
LL gcd(LL a, LL b)
{
   return b ? gcd(b, a % b) : a;
}
void solve()
{
   int n,m,q;
   cin>>n>>m>>q;
   vector<PII>a(n);
   map<LL,LL>mp,mp1;
   vector<PII>g;
   for(int i=0;i<n;i++){
       cin>>a[i].first>>a[i].second;
       mp[i]=a[i].first;
       mp1[a[i].first]=i;
   }
       int cur=m,curpos=-1;
       sort(a.rbegin(),a.rend());
       for(int i=0;i<n;i++){
           if(a[i].second==1){
               curpos=mp1[a[i].first];
               if(curpos>=m) cur--;
               break;
           }
       }
       //cout<<curpos<<'\n';
   while(q--){
     int op;cin>>op;
     if(op==1){
        int pos,gen;
       cin>>pos>>gen;
       for(int i=0;i<n;i++){
           if(mp[pos-1]==a[i].first){
              a[i].second=gen;
           }
       }
       sort(a.rbegin(),a.rend());
       cur=m;curpos=-1;
       for(int i=0;i<n;i++){
           if(a[i].second==1){
               curpos=mp1[a[i].first];
               if(curpos>=m) cur--;
               break;
           }
       }
     }else{
       int p;cin>>p;
       bool fl=false;
       //cout<<curpos<<" ";
       for(int i=0;i<cur;i++){
           if(mp[p-1]==a[i].first) {
               fl=true;
           }
       }
       if(fl||p-1==curpos) cout<<1<<'\n';
       else cout<<0<<'\n';
     }
   }
}
int main()
{
   ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
   solve();
}

詳細信息

Test #1:

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

input:

3 2 3
3 0
1 1
2 0
2 2
1 2 0
2 2

output:

1
0

result:

ok 2 number(s): "1 0"

Test #2:

score: 0
Accepted
time: 9ms
memory: 3708kb

input:

1000 1 1000
617 0
199 0
776 0
536 1
258 0
311 1
579 0
844 0
356 1
587 0
564 0
782 0
37 1
717 1
612 1
245 1
444 1
750 0
52 1
92 1
741 0
266 1
71 1
189 1
419 1
580 1
585 1
268 1
255 0
490 1
70 1
497 1
829 1
469 1
641 0
929 1
379 1
507 0
474 1
407 0
221 1
985 0
815 1
217 0
445 1
386 0
132 0
154 0
736 1...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 470 numbers

Test #3:

score: 0
Accepted
time: 8ms
memory: 4004kb

input:

1000 1 1000
541 1
236 1
583 1
99 0
324 0
107 0
459 0
854 0
772 0
426 1
717 1
806 0
335 0
503 0
860 0
463 1
306 1
813 0
947 1
989 0
736 1
713 0
65 1
222 0
428 0
680 0
652 1
681 1
661 0
595 1
474 1
70 1
641 1
688 0
591 0
20 1
330 1
563 0
38 1
638 1
391 1
979 1
488 0
829 0
956 1
395 1
694 0
669 0
567 0...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 516 numbers

Test #4:

score: -100
Wrong Answer
time: 8ms
memory: 3736kb

input:

1000 50 1000
950 0
163 0
276 0
422 1
449 0
81 0
245 1
995 1
908 1
466 0
123 0
848 1
749 0
370 1
86 1
299 1
384 0
570 1
678 0
713 0
360 0
737 0
627 0
60 1
250 1
88 1
915 1
145 0
863 0
925 1
742 0
409 1
858 1
441 0
803 0
811 1
575 0
47 0
271 1
107 1
431 0
677 1
704 0
340 0
160 0
856 1
176 0
488 1
832 ...

output:

0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
...

result:

wrong answer 87th numbers differ - expected: '1', found: '0'