过河的最短时间
#include<bits/stdc++.h>
using namespace std;
void f(int);
int n;
int main()
{system("color 1");cin>>n;int a[10010];for(int i=0;i<n;i++){cin>>a[i];}sort(a+0,a+n);int t=a[1];int k1=n-2;int k2=n-1;while(true){int t1=a[0]+a[k2]+a[1]+a[1];int t2=a[0]+a[k2]+a[0]+a[k1];if(t1>t2) t=t+k2;else t=t+k1;k1=k1-2;k2=k2-2;if(k1==0||k1==1) break;}if(k1==3) t=t+a[0]+a[3];cout<<t;return 0;
}
void f(int n){return;
}
整数区间
#include<bits/stdc++.h>
using namespace std;
struct area{int sp,ep;
};
area a[10010];
void f(int);
bool cmp(area,area);
int n;
int main()
{system("color 1");cin>>n;int cnt=1;for(int i=0;i<n;i++){cin>>a[i].sp>>a[i].ep;}sort(a+0,a+n,cmp);int k=a[0].ep;for(int i=1;i<n;i++){if(k<a[i].sp){cnt++;k=a[i].ep;}else if(a[i].ep<k){k=a[i].ep;}}cout<<cnt;return 0;
}
void f(int n){return;
}
bool cmp(area a,area b){return a.sp<b.sp;
}
特殊密码锁
#include<bits/stdc++.h>
using namespace std;
void f(bool,int);
int n;
int main()
{system("color 1");cin>>n;bool f1=true;bool f2=true;bool a1[100],b[100],a2[100];int c[100];string x1,x2;cin>>x1>>x2;int len=x1.size();for(int i=0;i<len;i++){a1[i]=x1[i]-48;a2[i]=x1[i]-48;b[i]=x2[i]-48;}int cnt1=0;for(int i=0;i<len;i++){if(b[i]!=a1[i]){f(a1,i+1);cnt1++;}}if(a2[len-1]!=b[len-1]) f1=false;int cnt2=0;if(a2[0]==b[0]){f(a2,1);cnt2++;}if(a2[1]==b[1]){f(a2,2);cnt2++;}for(int i=2;i<len-1;i++){if(b[i]!=a1[i]){f(a2,i+1);cnt2++;}}if(a2[len-1]==b[len-1]) cnt2++;else f2=false;if(f1==false&&f2==false) cout<<"impossible";else{cout<<min(cnt1,cnt2);}return 0;
}
void f(bool s[],int i){s[i]=!s[i];s[i-1]=!s[i-1];s[i+1]=!s[i+1];return;
}