QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#264755#7744. Elevatorucup-team2279WA 18ms4996kbC++201.3kb2023-11-25 15:12:242023-11-25 15:12:24

Judging History

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

  • [2023-11-25 15:12:24]
  • 评测
  • 测评结果:WA
  • 用时:18ms
  • 内存:4996kb
  • [2023-11-25 15:12:24]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define mk make_pair
#define lowbit(x) (x&(-x))
#define pb emplace_back
#define pr pair<int,int>
#define let const auto
#define all(A) A.begin(),A.end()
void chkmin(int &x,int y){x=min(x,y);}
void chkmax(int &x,int y){x=max(x,y);}
const int N=1e5+5;
int read(){
	int x=0,f=1; char c=getchar();
	while(('0'>c||c>'9')&&c!='-') c=getchar();
	if(c=='-') f=0,c=getchar();
	while('0'<=c&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
	return f?x:-x;
}
int cnt[N][3];
void solve(){
	int n=read(); ll k; scanf("%lld",&k);
	vector <int> vals;
	for(int i=1; i<=n; i++){
		int c=read(),w=read(),f=read();
		cnt[f][w]+=c;
		vals.push_back(f);
	}
	sort(all(vals),greater <int> ());
	vals.resize(unique(all(vals))-vals.begin());
	int f=0;
	for(int v:vals){
		if(cnt[v][1]>0&&f) cnt[v][1]--,f=0;
		cnt[v][2]+=(cnt[v][1]+1)/2;
		if(!f) f=cnt[v][1]%2?v:0;
	}
	k/=2;
	ll res=0,ans=0;
	for(int v:vals){
		int nt=cnt[v][2];
		cnt[v][1]=cnt[v][2]=0;
		if(nt<res) res-=nt;
		else{
			nt-=res;
			ans+=nt/k*v;
			nt%=k;
			if(nt) ans+=v,res=k-nt;
			else res=0;
		}
	}
	printf("%lld\n",ans);
}
int main(){
	int T=read();
	while(T--) solve();
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3688kb

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: 4996kb

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
17
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
21
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 5501st lines differ - expected: '1000000000000000', found: '141006540800000'