60pts,TLE#6#8#9#10
查看原帖
60pts,TLE#6#8#9#10
565707
mediocre_楼主2022/11/20 07:15
#include<bits/stdc++.h>
using namespace std;
const int N = 200005;
int use[N];
struct fruit{
	int id,v;
	int cui = 0;
}b[N * 2];
int n;
inline int read() {
    register int x = 0, t = 1;
    register char ch = getchar();
    while(ch < '0' || ch > '9'){
        if(ch == '-')
            t=-1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9'){
        x = (x << 1) + (x << 3) + (ch ^ 48);
        ch = getchar();
    }
    return x * t;
}
inline void write(int x) {
    if(x < 0){
    	putchar('-');
		x = -x;
	}
    if(x > 9) 
		write(x / 10);
    putchar(x % 10 + '0');
}
int main(){
	n = read();
	for (register int i = 1;i <= n;++i){
		b[i].v = read();
		b[i].id = i;
	}
	register int yy = 0;
	register int glue = 0;
	register int flag = 1;
	while (1){
		flag = 1;
		for (register int i = 1;i <= n;++i){
			if (b[i].cui == 0){
				flag = b[i].v;
				break;
			}
		}
		glue = 0;
		if (yy >= n)break;
        for (register int i = 1;i <= n;++i){
		    if (b[i].v == flag && b[i].cui == 0){
			    glue++;
		        use[glue] = b[i].v;
		        flag = abs(flag - 1);
		        b[i].cui++;
		        yy++;
		    }else if (b[i].cui == 1){
			    b[i].cui++;
		    }
	    }
	    for (register int i = 1;i <= n;++i){
		    if (b[i].cui == 1){
			    write(b[i].id);
			    putchar(' ');
		    }
	    }
	    putchar('\n');
	}
	return 0;
}

提交记录

2022/11/20 07:15
加载中...