75pts RE 求调
查看原帖
75pts RE 求调
999274
CNS_5t0_0r2楼主2024/1/10 13:30

看报错信息,应该是 O2 的锅

关于我三个样例一个都没过却没有一个点 WA 这件事

#include<bits/stdc++.h>
#define int __int128
using namespace std;
const int N = 1e5 + 9;
int read() {
    char c = getchar();
    int x = 0, f = 1;
    while (c < '0' || c > '9') {
        if (c == '-')
            f = -1;
        c = getchar();
    }
    while (c >= '0' && c <= '9') {
        x = (x << 3) + (x << 1) + c - 48;
        c = getchar();
    }
    return x * f;
}
void print(int x){
    if(x < 0){
        putchar('-');
        x = -x;
    }
    if(x > 9)
        print(x / 10);
    putchar(x % 10 + '0');
    return;
}
int n,m,q,delta;
int u,v,t;
int a[N];
queue<int>que[5];
int Max,id,Head,len;
bool cmp(int x,int y){
	return x > y;
}
signed main(){
	n = read();m = read();q = read();u = read();v = read();t = read();
	for(int i = 1;i <= n;i++)
		a[i] = read();
	sort(a + 1,a + n + 1,cmp);
	for(int i = 1;i <= n;i++)
		que[0].push(a[i]);
	for(int i = 1;i <= m;i++){
		Max = -1;
		for(int j = 0;j <= 2;j++){
			if(!que[j].empty()) {
				Head = que[j].front();
				if(Head > Max){
					Max = Head;
					id = j;
				}
			}
		}
		Head = que[id].front() + delta;
		if(!(i % t))
			print(Head),putchar(' ');
		que[id].pop();
		len = Head * u / v; 
		que[1].push(len - delta - q);
		que[2].push(Head - len - delta - q);
		delta += q;
	}
	putchar('\n');
	for(int i = 1;i <= n + m;i++){
		Max = -1;
		for(int j = 0;j <= 2;j++){
			if(!que[j].empty()){
				Head = que[j].front();
				if(Head > Max){
					Max = Head;
					id = j;
				}
			}
		}
		Head = que[id].front() + delta;
		if(!(i % t))
			print(Head),putchar(' ');
		que[id].pop();
	}
	return 0;
}
2024/1/10 13:30
加载中...