C-Equilateral Triangle
链接:C - Equilateral Triangle
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[300010];
int ans,temp;
//main函数的返回值必须是signed或int,由于定义int 为long long,只能让返回值变为signed main()
signed main(){int n;cin>>n;int l;cin>>l;a[0]=1; //输入N-1个数据for(int i=1;i<n;i++){int x;cin>>x;temp+=x;temp%=l;a[temp]++;}
//注意在输入x后判断,否则会输完n,l直接输出0if(l%3!=0){cout<<0;return 0;} //Sample Input 2for(int i=0;i<l/3;i++){
// if(a[i]>0&&a[i+l/3]>0&&a[i+2*l/3]>0){ans+=a[i]*a[i+l/3]*a[i+2*l/3];
// }}cout<<ans;return 0;
}
typedef long long ll
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int a[300010];
ll ans;
int temp;
//main函数的返回值必须是signed或int,由于定义int 为long long,只能让返回值变为signed main()
int main(){int n;cin>>n;int l;cin>>l;a[0]=1; //输入N-1个数据for(int i=1;i<n;i++){ll x;cin>>x;temp+=x;temp%=l;a[temp]++;}
//注意在输入x后判断,否则会输完n,l直接输出0if(l%3!=0){cout<<0;return 0;} //Sample Input 2for(int i=0;i<l/3;i++){
// if(a[i]>0&&a[i+l/3]>0&&a[i+2*l/3]>0){ans+=1ll*a[i]*a[i+l/3]*a[i+2*l/3];
// }}cout<<ans;return 0;
}
1LL 是 C++ 中表示 long long 类型整数的字面量,用于在计算过程中避免溢出错误。通过在整数后添加 LL 后缀,可以确保计算的中间结果使用 long long 类型,从而提高计算的准确性和安全性