求助有关 SPJ 的问题。
  • 板块灌水区
  • 楼主Brainless_zxc
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/7/9 07:33
  • 上次更新2024/7/9 07:57:08
查看原帖
求助有关 SPJ 的问题。
661274
Brainless_zxc楼主2024/7/9 07:33

这题。

提交记录

代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int cnt0,cnt1,cnt2;
int ans=0;
queue<int> q0,q1,q2;
int main(){
//	freopen("data18.in","r",stdin);
//	freopen("my1.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		if(x%3==0){
			cnt0++;
			q0.push(i);
		}
		else if(x%3==1){
			cnt1++;
			q1.push(i);
		}
		else{
			cnt2++;
			q2.push(i);
		}
	}
	ans=max(cnt0/3+cnt1/3+cnt2/3+min(cnt0%3,min(cnt1%3,cnt2%3)),min(cnt0,min(cnt1,cnt2))+(cnt0-min(cnt0,min(cnt1,cnt2)))/3+(cnt1-min(cnt0,min(cnt1,cnt2)))/3+(cnt2-min(cnt0,min(cnt1,cnt2)))/3);
	cout<<ans<<endl;
	if(ans==(cnt0/3+cnt1/3+cnt2/3+min(cnt0%3,min(cnt1%3,cnt2%3)))){
		int zxc=min(cnt1%3,min(cnt2%3,cnt0%3));
		for(int i=1;i<=cnt0/3;i++){
			if(i==cnt0/3&&cnt1/3==0&&cnt2/3==0&&zxc==0){
				cout<<q0.front()<<" ";
				q0.pop();
				cout<<q0.front()<<" ";
				q0.pop();
				cout<<q0.front();
				q0.pop();
			}
			else{
				cout<<q0.front()<<" ";
				q0.pop();
				cout<<q0.front()<<" ";
				q0.pop();
				cout<<q0.front()<<endl;
				q0.pop();
			}
		}
		for(int i=1;i<=cnt1/3;i++){
			if(i==cnt1/3&&cnt2/3==0&&zxc==0){
				cout<<q1.front()<<" ";
				q1.pop();
				cout<<q1.front()<<" ";
				q1.pop();
				cout<<q1.front();
				q1.pop();
			}
			else{
				cout<<q1.front()<<" ";
				q1.pop();
				cout<<q1.front()<<" ";
				q1.pop();
				cout<<q1.front()<<endl;
				q1.pop();
			}
		}
		for(int i=1;i<=cnt2/3;i++){
			if(i==cnt2/3&&zxc==0){
				cout<<q2.front()<<" ";
				q2.pop();
				cout<<q2.front()<<" ";
				q2.pop();
				cout<<q2.front();
				q2.pop();
			}
			else{
				cout<<q2.front()<<" ";
				q2.pop();
				cout<<q2.front()<<" ";
				q2.pop();
				cout<<q2.front()<<endl;
				q2.pop();
			}
		}
		for(int i=1;i<=zxc;i++){
			if(i==zxc){
				cout<<q0.front()<<" ";
				q0.pop();
				cout<<q1.front()<<" ";
				q1.pop();
				cout<<q2.front();
				q2.pop();
				return 0;
			}
			cout<<q0.front()<<" ";
			q0.pop();
			cout<<q1.front()<<" ";
			q1.pop();
			cout<<q2.front()<<endl;
			q2.pop(); 
		}
		return 0;
	}
	else{
		for(int i=1;i<=min(cnt0,min(cnt1,cnt2));i++){
			cout<<q0.front()<<" ";
			cnt0--;
			q0.pop();
			cout<<q1.front()<<" ";
			cnt1--;
			q1.pop();
			cout<<q2.front()<<endl;
			cnt2--;
			q2.pop();
		}
		for(int i=1;i<=cnt0/3;i++){
			cout<<q0.front()<<" ";
			q0.pop();
			cout<<q0.front()<<" ";
			q0.pop();
			cout<<q0.front()<<endl;
			q0.pop();
		}
		for(int i=1;i<=cnt1/3;i++){
			cout<<q1.front()<<" ";
			q1.pop();
			cout<<q1.front()<<" ";
			q1.pop();
			cout<<q1.front()<<endl;
			q1.pop();
		}
		for(int i=1;i<=cnt2/3;i++){
			cout<<q2.front()<<" ";
			q2.pop();
			cout<<q2.front()<<" ";
			q2.pop();
			if(i==cnt2/3){
				cout<<q2.front();
				q2.pop();
			}
			else{
				cout<<q2.front()<<endl;
				q2.pop();
			}
		}
	}
	return 0;
}
/*
0 1 2
1 1 1
2 2 2
0 0 0
*/

啥叫 wrong output format Unexpected end of file - int32 expected。

给出 checker :

#include "testlib.h"
using namespace std;
const int N=2e5+10;
long long n,a[N];
int k;
int p[N];
int main(int argc,char *argv[])
{
	registerTestlibCmd(argc,argv);
	n=inf.readInt(1,200'000,"n");
	inf.readEoln();
	for(int i=1;i<=n;i++)
	{
		a[i]=inf.readInt(1,1'000'000'000,"a_i");
		if(i!=n)inf.readSpace();
	}
	int mxk=ans.readInt(0,n,"mxk");
	k=ouf.readInt(0,n,"k");
	if(k!=mxk)
	{
		quitf(_wa,"Your k is %d, but the answer is %d",k,mxk);
	}
// 	ouf.readEoln();
	for(int i=1;i<=k;i++)
	{
		int v[3]={0,0,0};
		for(int j=0;j<3;j++)
		{
			v[j]=ouf.readInt(1,n,"v_j");
		}
// 		if(i!=k)ouf.readEoln();
		sort(v,v+3);
		if ((a[v[0]]+a[v[1]]+a[v[2]])%3!=0) quitf(_wa,"The sum of the %d-th group \%3!=0",i);
		for(int j=0;j<2;j++)
			if(v[j]==v[j+1])
			{
				quitf(_wa,"The %d-th group includes 2 same children",i);
			}
		for(int j=0;j<3;j++)
			if(p[v[j]])
			{
				quitf(_wa,"The %d-th children is in the %d-th group and the %d-th group",v[j],p[v[j]],i);
			}
		for(int j=0;j<3;j++)
			p[v[j]]=i;
	}
	while(!ouf.eof())ouf.readChar();
	ouf.readEof();
	quitf(_ok,"You gave a right solution");
	return 0;
}

求大神看看吧qwq

2024/7/9 07:33
加载中...