NC204018. 三角形周长和
描述
输入描述
第一行一个整数表示.接下来行每行两个整数表示一个点.
输出描述
输出一个整数表示周长和.
示例1
输入:
3 0 0 1 0 1 1
输出:
4
C++14(g++5.4) 解法, 执行用时: 7ms, 内存消耗: 600K, 提交时间: 2020-03-28 10:26:04
#include<bits/stdc++.h> using namespace std; long long n,x[1010],y[1010],ans = 0; int main(){ cin>>n; for(int i = 1;i<=n;i++){ cin>>x[i]>>y[i]; for(int j = 1;j<i;j++){ ans=(ans+abs(x[i]-x[j])+abs(y[i]-y[j]))%998244353; } } cout<<ans*(n-2)%998244353; return 0; }
C(clang 3.9) 解法, 执行用时: 4ms, 内存消耗: 376K, 提交时间: 2020-04-03 13:16:30
long long z,n,x[1005],y[1005]; int main(){ scanf("%lld",&n); for(int i=1;i<=n;i++){ scanf("%lld%lld",&x[i],&y[i]); for(int j=1;j<=i;j++){ z=(z+abs(x[i]-x[j])+abs(y[i]-y[j]))%998244353; } } printf("%lld\n",z*(n-2)%998244353); }
C++11(clang++ 3.9) 解法, 执行用时: 8ms, 内存消耗: 604K, 提交时间: 2020-03-28 10:55:23
#include<bits/stdc++.h> using namespace std; long long n,x[1005],y[1005],sum; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>x[i]>>y[i]; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) sum=(sum+(abs(x[i]-x[j])+abs(y[i]-y[j]))*(n-2))%998244353; cout<<sum; return 0; }
Python3(3.5.2) 解法, 执行用时: 499ms, 内存消耗: 3684K, 提交时间: 2020-04-01 15:51:28
n=int(input()) arr=[list(map(int,input().split())) for i in range(n)] p=998244353 res=0 for i in range(n) : for j in range(i,n) : res=(res+(abs(arr[i][0]-arr[j][0])+abs(arr[i][1]-arr[j][1]))*(n-2)) % p print(res)