传送门: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;
}
B:
#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);
}
}
C:
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;
}
D:
构造,按照这种图形 >-----< 即可,注意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;
}