传送门:http://codeforces.com/contest/673
A:
#include <bits/stdc++.h> using namespace std; typedef __int64 ll; const int INF=0x3f3f3f3f; const int maxn=200005; int T,n,m; int a[maxn]; int main(){ while(~scanf("%d",&n)){ a[0]=0; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } a[n+1]=90; m=0; for(int i=1;i<=n+1;i++){ if(a[i]-a[i-1]>15){ m=15+a[i-1]; break; } } if(m==0) m=90; printf("%d\n",m); } return 0; }
#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <map> #include <string> #include <math.h> #include <stdlib.h> using namespace std; int main() { int n,m; while(~scanf("%d %d",&n,&m)){ if(m==0){ printf("%d\n",n-1); continue; } int L_max=-1,R_min=100005; for(int i=1;i<=m;i++){ int l,r; scanf("%d %d",&l,&r); if(l>r) swap(l,r); i==1?L_max=l:L_max=max(L_max,l); i==1?R_min=r:R_min=min(R_min,r); } if(L_max>=R_min ){ printf("0\n"); continue; } printf("%d\n",R_min-L_max); } }
N^2暴力,46ms就可以过..
#include <bits/stdc++.h> using namespace std; typedef __int64 ll; const int INF=0x3f3f3f3f; const int maxn=5005; int T,n,m; int t[maxn],a[maxn]; int flag[maxn]; int main(){ while(~scanf("%d",&n)){ for(int i=1;i<=n;i++) scanf("%d",&t[i]); memset(a,0,sizeof(a)); for(int i=1;i<=n;i++){ memset(flag,0,sizeof(flag)); int max=-1,index=n+1; for(int j=i;j<=n;j++){ flag[t[j]]++; if(flag[t[j]]>max){ max=flag[t[j]]; index=t[j]; } if(flag[t[j]]==max) index=min(index,t[j]); a[index]++; } } for(int i=1;i<=n;i++) printf("%d%c",a[i],i==n?'\n':' '); } return 0; }
构造,按照这种图形 >-----< 即可,注意n=4的时候不可以,因为ab不能直接相连
#include <bits/stdc++.h> using namespace std; typedef __int64 ll; const int INF=0x3f3f3f3f; const int maxn=5005; int T,n,k; int a,b,c,d; bool vis[maxn]; void Print(int a,int b,int c,int d){ printf("%d %d ",a,c); for(int i=1;i<=n;i++){ if(!vis[i]){ printf("%d ",i); } } printf("%d %d\n",d,b); } int main(){ while(~scanf("%d%d",&n,&k)){ scanf("%d%d%d%d",&a,&b,&c,&d); if(n==4||k<=n){puts("-1");continue;} vis[a]=vis[b]=vis[c]=vis[d]=true; Print(a,b,c,d); Print(c,d,a,b); } return 0; }