QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#21532#2850. 蛋糕gsh#AC ✓13ms3552kbC++201.1kb2022-03-07 14:39:212022-05-08 03:36:20

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-05-08 03:36:20]
  • 评测
  • 测评结果:AC
  • 用时:13ms
  • 内存:3552kb
  • [2022-03-07 14:39:21]
  • 提交

answer

#include<algorithm>
#include<iostream>
#include<vector>
#include<cstdio>
using namespace std;
#define int long long
#define For(i,l,r) for(int i=l;i<=r;i++)
#define FOR(i,l,r) for(int i=l;i>=r;i--)
#define P 2148473648
#define MAXN 100001

int get(){int x=0,f=1;char c=getchar();while(c<'0'||c>'9')c=='-'&&(f=-1),c=getchar();while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();return x*f;}
signed main()
{
	int T=get();
	while(T--)
	{
		int a[4];For(i,0,3)a[i]=get();int ans[8];For(i,0,4)ans[i]=0;vector<int>b;
		int mul=1;For(i,0,3)if(a[i]<=2)mul*=a[i];
		int cnt=0;For(i,0,3)if(a[i]==1)cnt+=2;else if(a[i]==2)cnt+=1;else b.push_back(a[i]);
		if(!b.size()){For(i,1,cnt)cout<<"0 ";int ans=1;For(i,0,3)ans*=a[i];cout<<ans%P<<' ';For(i,1,8-cnt)cout<<"0 ";cout<<'\n';continue;}
		int res[5]={1,0,0,0,0};
		for(auto i:b)
		{
			int tmp[5];For(j,0,4)tmp[j]=res[j]*(i-2)%P;For(j,1,4)tmp[j]=(tmp[j]+res[j-1]*2)%P;
			For(j,0,4)res[j]=tmp[j];
		}
		For(i,1,cnt)cout<<"0 ";For(j,0,b.size())cout<<res[j]*mul%P<<' ';For(j,0,7-cnt-b.size())cout<<"0 ";cout<<'\n';
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 13ms
memory: 3552kb

input:

9999
18429 66560 1 13694
48994 1 16287 10018
26028 52162 14916 1
30285 52396 33384 55269
65461 96967 74820 73364
55054 70162 1 1
97285 88897 39444 35439
61069 20048 35664 1
21838 22945 6244 79240
46316 82624 33318 31522
90387 93765 7568 97379
22273 74037 1255 91257
67961 28295 1 36263
20958 87638 59...

output:

0 0 278697304 483210476 394708 8 0 0 0 
0 0 939058608 754824656 301172 8 0 0 0 
0 0 928825136 750217032 372400 8 0 0 0 
1239780156 506705424 73742516 1370608 16 0 0 0 0 
1867092428 2145345144 1816812716 2484832 16 0 0 0 0 
0 0 0 0 1713974672 250424 4 0 0 
1222501394 1134629934 1413163092 2088456 16 ...

result:

ok 9999 lines