QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#218657 | #6754. Selection | curtain_cpp | AC ✓ | 10ms | 3760kb | C++14 | 3.3kb | 2023-10-18 16:28:33 | 2023-10-18 16:28:33 |
Judging History
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;
}
}
}else{
int p;cin>>p;
bool fl=false;
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(i>=m) cur--;
break;
}
}
//cout<<curpos<<" ";
for(int i=0;i<cur;i++){
if(mp1[a[i].first]==p-1){
fl=true;break;
}
}
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();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3608kb
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: 10ms
memory: 3660kb
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: 10ms
memory: 3756kb
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: 0
Accepted
time: 10ms
memory: 3760kb
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 1 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:
ok 511 numbers
Test #5:
score: 0
Accepted
time: 10ms
memory: 3732kb
input:
1000 1 1000 900 1 127 1 89 1 836 1 434 1 912 1 459 0 155 1 394 0 669 1 33 1 584 0 80 0 433 1 284 1 43 0 377 0 84 1 91 1 158 0 406 1 654 0 604 0 469 1 352 1 762 1 824 0 423 1 172 0 62 1 399 0 130 1 19 1 640 1 212 0 215 0 661 0 597 0 309 1 688 1 978 0 677 0 170 0 853 1 448 1 945 1 765 0 751 0 830 0 25...
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 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 ...
result:
ok 467 numbers
Test #6:
score: 0
Accepted
time: 10ms
memory: 3676kb
input:
1000 10 1000 135 1 844 1 342 0 548 0 385 0 595 1 271 1 189 0 685 0 951 0 586 0 132 0 537 0 99 1 828 1 676 1 407 1 20 0 297 0 91 1 336 1 113 0 370 1 498 0 201 1 866 1 64 0 443 0 852 0 46 0 51 0 146 1 650 1 60 0 349 0 773 1 556 0 219 1 526 1 659 1 913 1 260 1 186 0 787 0 130 1 669 0 307 1 105 1 316 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 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 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 488 numbers