@KirinBill
2017-10-10T07:16:06.000000Z
字数 4012
阅读 1573
题解 套题
目录

#include <cstdio>#include <cctype>#include <string>using std::string;inline void setIO(string file){string in=file+".in",out=file+".out";freopen(in.c_str(),"r",stdin);freopen(out.c_str(),"w",stdout);}template<typename type>inline void read(type &x){int pm=1; char c;do{c=getchar();if(c=='-') pm=-1;}while(!isdigit(c));x=c^'0';while(c=getchar(),isdigit(c))x=x*10+(c^'0');x*=pm;}template<typename type>void write(type x,char c=0){if(x<0) putchar('-'),x=-x;if(x>9) write(x/10);putchar(x%10|'0');if(c) putchar(c);}const int MAXN=5005;int n;int cnt[MAXN],ans[MAXN];int main(){#ifdef DEBUGsetIO("a");#endifread(n);for(int i=1;i<=n;++i)read(cnt[i]);for(int i=1;i<=n;++i){for(int j=1,k=0;j<=n;++j){if(ans[j]) continue;if(++k==cnt[i]+1){ans[j]=i;break;}}}for(int i=1;i<=n;++i)write(ans[i],' ');return 0;}

#include <cstdio>#include <cctype>#include <string>using std::string;inline void setIO(string file){string in=file+".in",out=file+".out";freopen(in.c_str(),"r",stdin);freopen(out.c_str(),"w",stdout);}template<typename type>inline void read(type &x){int pm=1; char c;do{c=getchar();if(c=='-') pm=-1;}while(!isdigit(c));x=c^'0';while(c=getchar(),isdigit(c))x=x*10+(c^'0');x*=pm;}template<typename type>void write(type x,char c=0){if(x<0) putchar('-'),x=-x;if(x>9) write(x/10);putchar(x%10|'0');if(c) putchar(c);}#include <cmath>#include <algorithm>using std::abs;using std::max;const int MAXXY=5005;int n,m,x,y,ans,cntx,cnty;int posx[MAXXY],posy[MAXXY];int main(){#ifdef DEBUGsetIO("b");#endifint T;read(T);while(T--){read(n),read(m);read(x),read(y);for(int i=1;i<=x;++i)read(posx[i]);for(int i=1;i<=y;++i)read(posy[i]);cntx=cnty=0;for(int i=1;i<=x;++i){if(abs(posx[i])<=m) ++cntx;}for(int i=1;i<=y;++i){if(abs(posy[i])<=m) ++cnty;}ans=0;if((!cntx || !cnty) && (cntx || cnty)) ans+=max(cntx-1,cnty-1);cntx=max(cntx-1,0),cnty=max(cnty-1,0);ans+=(x+1)*(y+1)-cntx*cnty;write(ans,'\n');}return 0;}

#include <cstdio>#include <cctype>#include <string>using std::string;inline void setIO(string file){string in=file+".in",out=file+".out";freopen(in.c_str(),"r",stdin);freopen(out.c_str(),"w",stdout);}template<typename type>inline void read(type &x){int pm=1; char c;do{c=getchar();if(c=='-') pm=-1;}while(!isdigit(c));x=c^'0';while(c=getchar(),isdigit(c))x=x*10+(c^'0');x*=pm;}template<typename type>void write(type x,char c=0){if(x<0) putchar('-'),x=-x;if(x>9) write(x/10);putchar(x%10|'0');if(c) putchar(c);}#include <algorithm>#include <iostream>#include <cmath>using std::__gcd;using std::ostream;using std::cout;using std::abs;const int MAXN=200005;int n,tot;int a[MAXN],lp[MAXN],rp[MAXN];long long sum[MAXN];struct frac{long long up,dwn;frac(long long up=0,long long dwn=1):up(up),dwn(dwn){if(this->dwn<0) this->up=-this->up,this->dwn=-this->dwn;long long gcd=__gcd(abs(this->up),abs(this->dwn));this->up/=gcd,this->dwn/=gcd;}friend bool operator> (frac a,frac b){long long lcm=a.dwn*b.dwn/__gcd(a.dwn,b.dwn);a.up*=lcm/a.dwn;b.up*=lcm/b.dwn;return a.up>b.up;}friend ostream& operator<< (ostream &out,frac &a){write(a.up,'/');write(a.dwn);return out;}}ans[MAXN];int main(){#ifdef DEBUGsetIO("c");#endifread(n);for(int i=1;i<=n;++i)read(a[i]);lp[1]=rp[1]=1,sum[1]=a[1];tot=1;long long tmp;for(int i=2;i<=n;++i){++tot;lp[tot]=rp[tot]=i;sum[tot]=a[i];while(tot>1 && frac(sum[tot-1],rp[tot-1]-lp[tot-1]+1)>frac(sum[tot],rp[tot]-lp[tot]+1)){sum[tot-1]+=sum[tot];rp[tot-1]=rp[tot];--tot;}}for(int i=1;i<=tot;++i){for(int j=lp[i];j<=rp[i];++j)ans[j]=frac(sum[i],rp[i]-lp[i]+1);}for(int i=1;i<=n;++i)cout<<ans[i]<<' ';return 0;}