QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#673253 | #7744. Elevator | xxk2006 | WA | 18ms | 5344kb | C++23 | 2.3kb | 2024-10-24 21:23:32 | 2024-10-24 21:23:32 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define Enter putchar('\n')
#define spc putchar(' ')
#define pb push_back
#define fi first
#define se second
inline void read(int &num){num=0;int f=1;char ch=getchar();while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){num=(num<<1)+(num<<3)+(ch^48);ch=getchar();}num*=f;}
inline void lread(long long &num){num=0;int f=1;char ch=getchar();while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){num=(num<<1)+(num<<3)+(ch^48);ch=getchar();}num*=f;}
void print(long long num){if(num<0){putchar('-');num=-num;}if(num>9){print(num/10);}putchar((num%10)^48);}
LL f[100009][2];
vector<int> g;
int main(){
int T,n,a,b,c;
LL k;
read(T);
while(T--){
read(n),lread(k);
g.clear();
for(int i=1;i<=n;i++){
read(a),read(b),read(c);
f[c][b-1]+=a;
g.pb(c);
}
sort(g.begin(),g.end());
LL ans=0,re=0;
for(int i=g.size()-1;~i;i--){
f[g[i]][1]<<=1;
if(f[g[i]][1]>=re){
if(re&1){
f[g[i]][1]-=re-1;
re=1;
}
else{
f[g[i]][1]-=re;
re=0;
}
}
else{
re-=f[g[i]][1];
f[g[i]][1]=0;
}
if(f[g[i]][0]>=re){
f[g[i]][0]-=re;
re=0;
}
else{
re-=f[g[i]][0];
f[g[i]][0]=0;
}
ans+=f[g[i]][1]/k*g[i];
f[g[i]][1]%=k;
ans+=f[g[i]][0]/k*g[i];
f[g[i]][0]%=k;
if(re&&f[g[i]][1]){
re+=f[g[i]][1];
ans+=g[i];
f[g[i]][1]=0;
continue;
}
if(re)continue;
re=f[g[i]][1]+f[g[i]][0];
f[g[i]][1]=f[g[i]][0]=0;
if(re>=k){
re-=k;
ans+=g[i];
}
if(re){
re=k-re;
ans+=g[i];
}
//cout<<g[i]<<' '<<ans<<' '<<re<<endl;
}
print(ans),Enter;
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3608kb
input:
2 4 6 1 1 8 7 2 5 1 1 7 3 2 6 8 1200000 100000 1 100000 100000 1 12345 100000 2 100000 100000 2 12345 100000 1 100000 100000 1 12345 100000 2 100000 100000 2 12345
output:
24 100000
result:
ok 2 lines
Test #2:
score: -100
Wrong Answer
time: 18ms
memory: 5344kb
input:
5501 8 104 5 2 3 6 2 4 5 2 3 6 2 9 8 2 4 2 1 3 7 2 4 8 2 8 1 290 3 1 1 12 12 6 1 2 1 2 2 1 1 2 1 2 4 6 1 1 1 2 5 6 1 4 4 1 4 6 2 4 6 2 5 4 2 5 4 1 4 5 334 1 1 4 1 2 3 4 2 1 5 1 1 2 1 2 13 218 5 2 3 5 1 4 1 2 1 1 2 5 3 2 2 1 1 3 4 2 2 1 2 5 2 2 1 2 1 5 3 2 1 5 2 1 1 1 4 10 260 7 2 1 5 1 1 5 2 4 6 1 6...
output:
9 1 23 4 5 7 1 3 9 6 1 10 4 9 20 6 4 1 8 5 5 7 1 3 23 6 3 3 2 2 2 3 8 1 5 6 9 11 147 7 10 2 7 7 8 6 5 5 1 7 3 5 10 7 7 10 8 1 4 2 3 9 1 5 2 9 1 6 7 7 6 10 18 8 10 4 10 9 2 8 3 5 9 3 6 5 3 2 6 1 3 2 2 1 6 9 6 3 4 8 9 9 2 6 1 2 6 7 5 2 5 26 8 1 2 3 4 9 3 4 6 5 9 6 1 7 3 7 3 2 2 8 7 3 5 9 7 10 7 3 2 4 ...
result:
wrong answer 15th lines differ - expected: '17', found: '20'