1 条题解
-
1
C :
#include<stdio.h> int getMinGap(int c, int a1, int a2) { int t = a2 - a1; if (t < (c - t)) return t; else return c - t; } int main() { int c, n; scanf("%d%d", &c, &n); int *const p = (int*)(malloc(n * (sizeof(int)))); memset(p, 0, n); for (int i = 0; i < n; i++) scanf("%d", &p[i]); int maxgap; maxgap = getMinGap(c, p[0], p[n - 1]); for (int i = 0; i < n - 1; i++) { int gap = getMinGap(c, p[i], p[i + 1]); if (gap > maxgap) maxgap = gap; } printf("%d", c - maxgap); return 0; }
C++ :
#include <bits/stdc++.h> #define int long long #define pb push_back #define fer(i,a,b) for(int i=a;i<=b;++i) #define der(i,a,b) for(int i=a;i>=b;--i) #define all(x) (x).begin(),(x).end() #define pll pair<int,int> #define et cout<<'\n' #define xx first #define yy second using namespace std; template <typename _Tp>void input(_Tp &x){ char ch(getchar());bool f(false);while(!isdigit(ch))f|=ch==45,ch=getchar(); x=ch&15,ch=getchar();while(isdigit(ch))x=x*10+(ch&15),ch=getchar(); if(f)x=-x; } template <typename _Tp,typename... Args>void input(_Tp &t,Args &...args){input(t);input(args...);} vector<pll> v; const int N=1e6+10; int a[N]; signed main() { int sum,n; input(sum,n); int ans=0; fer(i,1,n){ cin>>a[i]; if(i>1) ans=max(ans,a[i]-a[i-1]); } ans=max(ans,sum+a[1]-a[n]); cout<<sum-ans; return 0; }
Python :
# coding=utf-8 k,n=map(int,input().split()) a=[*map(int,input().split())] a+=[k+a[0]] print(k-max([a[i+1]-a[i] for i in range(n)]))
- 1
信息
- ID
- 12833
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 6
- 标签
- 递交数
- 160
- 已通过
- 50
- 上传者