QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#635788 | #7744. Elevator | Akoasm_X | WA | 8ms | 6176kb | C++20 | 1.7kb | 2024-10-12 20:58:31 | 2024-10-12 20:58:33 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define mp make_pair
#define pb push_back
typedef long long LL;
#define int long long
inline int read(){
int x = 0 , f = 1 ; char c = getchar() ;
while( c < '0' || c > '9' ) { if( c == '-' ) f = -1 ; c = getchar() ; }
while( c >= '0' && c <= '9' ) { x = x * 10 + c - '0' ; c = getchar() ; }
return x * f ;
}
const int maxn = 1e5+20;
int n,k;
struct Node{
int x,y,z;
bool operator <(const Node X)const{
return z > X.z;
}
}A[maxn];
void solve(){
n = read();k = read();
for(int i=1;i<=n;i++){
int a = read(),b = read(),c = read();
A[i] = (Node){a,b,c};
}
sort(A+1,A+1+n);
LL Ans = 0,res = k,tg = 0;
for(int i=1;i<=n;i++){
if(A[i].y){
A[i].x -= tg;
tg = 0;
}
if(res){
if(res==k) Ans += A[i].z;
int t = min(res / A[i].y,A[i].x);
res -= t * A[i].y;
A[i].x -= t;
if(A[i].x==0){
if(res==0) res = k;
else if(res==1){
tg++;
res = k;
}
else ;
}
else{
if(res==0) res = k;
else if(res==1){
tg++;
res = k;
}
int t1 = A[i].x * A[i].y / k;
int t2 = A[i].x * A[i].y % k;
Ans += t1 * A[i].z;
Ans += A[i].z;
res -= t2;
}
}
}
printf("%lld\n",Ans);
}
signed main(){
// freopen("1.txt","r",stdin);
int T = 1;
T = read();
while(T--) solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3776kb
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: 8ms
memory: 6176kb
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 11 17 6 4 1 8 5 5 7 1 3 23 6 3 3 2 2 2 3 8 1 5 6 9 11 183 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 20 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 14th lines differ - expected: '9', found: '11'