1 条题解

  • 1
    @ 2022-10-9 8:29:25

    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
    上传者