2 solutions
-
0
思路
mod everything
易错点1:单个值也要取模!!因为所有输入值最大都是1e18,所以每个值都要取模
易错点2:负数要加mod(a * b * c取模后可能会小于d * e * f)
易错点3:两两相乘时也要取模
#include<bits/stdc++.h> using namespace std; const int mod=998244353; int main(){ freopen("abc.in","r",stdin); freopen("abc.out","w",stdout); long long a,b,c,d,e,f; cin>>a>>b>>c>>d>>e>>f; long long cnt1=(((a%mod)*(b%mod)%mod)*(c%mod))%mod; long long cnt2=(((d%mod)*(e%mod)%mod)*(f%mod))%mod; long long res=((cnt1-cnt2)+mod)%mod; cout<<res; return 0; }
-
-1
#include <cstdio> #define MOD 998244353 // hack: a * b * c % MOD < d * e * f % MOD long long a, b, c, d, e, f, abc_sum, def_sum, ans; FILE * fin, * fout; long long mul_mod(long long a, long long b, long long c) { return (a % MOD) * (b % MOD) % MOD * (c % MOD) % MOD; } int main() { fin = fopen("abc.in", "rb"); fout = fopen("abc.out", "wb"); fscanf(fin, "%lld %lld %lld %lld %lld %lld", &a, &b, &c, &d, &e, &f); abc_sum = mul_mod(a, b, c); def_sum = mul_mod(d, e, f); ans = (abc_sum - def_sum + MOD) % MOD; fprintf(fout, "%lld", ans); return 0; }
- 1
Information
- ID
- 1100
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- (None)
- # Submissions
- 134
- Accepted
- 14
- Uploaded By