A.New Year and Hurry
手速题
#include<bits/stdc++.h>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define ForkD(i,k,n) for(int i=n;i>=k;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=Pre[x];p;p=Next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=Next[p])
#define Lson (o<<1)
#define Rson ((o<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define F (1000000007)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define vi vector<int>
#define pi pair<int,int>
#define SI(a) ((a).size())
#define Pr(kcase,ans) printf("Case #%d: %I64d\n",kcase,ans);
#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;
#define PRi2D(a,n,m) For(i,n) { \
For(j,m-) cout<<a[i][j]<<' ';\
cout<<a[i][m]<<endl; \
}
#pragma comment(linker, "/STACK:102400000,102400000")
#define ALL(x) (x).begin(),(x).end()
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
ll mul(ll a,ll b){return (a*b)%F;}
ll add(ll a,ll b){return (a+b)%F;}
ll sub(ll a,ll b){return ((a-b)%F+F)%F;}
void upd(ll &a,ll b){a=(a%F+b%F)%F;}
int read()
{
int x=,f=; char ch=getchar();
while(!isdigit(ch)) {if (ch=='-') f=-; ch=getchar();}
while(isdigit(ch)) { x=x*+ch-'0'; ch=getchar();}
return x*f;
}
int main()
{
// freopen("A.in","r",stdin);
// freopen(".out","w",stdout);
int n,k;
cin>>n>>k;
int t=-k;
int c=;
For(i,n) {
if (t>=i*) t-=i*,c++;
}
cout<<c<<endl;
return ;
}
B.New Year and North Pole
#include<bits/stdc++.h>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define ForkD(i,k,n) for(int i=n;i>=k;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=Pre[x];p;p=Next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=Next[p])
#define Lson (o<<1)
#define Rson ((o<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define F (1000000007)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define vi vector<int>
#define pi pair<int,int>
#define SI(a) ((a).size())
#define Pr(kcase,ans) printf("Case #%d: %I64d\n",kcase,ans);
#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;
#define PRi2D(a,n,m) For(i,n) { \
For(j,m-) cout<<a[i][j]<<' ';\
cout<<a[i][m]<<endl; \
}
#pragma comment(linker, "/STACK:102400000,102400000")
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
ll mul(ll a,ll b){return (a*b)%F;}
ll add(ll a,ll b){return (a+b)%F;}
ll sub(ll a,ll b){return ((a-b)%F+F)%F;}
void upd(ll &a,ll b){a=(a%F+b%F)%F;}
int read()
{
int x=,f=; char ch=getchar();
while(!isdigit(ch)) {if (ch=='-') f=-; ch=getchar();}
while(isdigit(ch)) { x=x*+ch-'0'; ch=getchar();}
return x*f;
}
int main()
{
// freopen("B.in","r",stdin);
// freopen(".out","w",stdout);
int n;
cin>>n;
bool fl=;
int s=,l=;
For(i,n) {
int p=read();
string st;
cin>>st;
if (s==&&st[]!='S') {
fl=; break;
}
if (s==l&&st[]!='N') {
fl=; break;
}
if (st[]=='S') s+=p;
if (st[]=='N') s-=p;
if (s<||s>l) {
fl=; break;
}
}
if (s!=) fl=;
if (fl) puts("YES") ;else puts("NO");
return ;
}
C.New Year and Rating
#include<bits/stdc++.h>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define ForkD(i,k,n) for(int i=n;i>=k;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=Pre[x];p;p=Next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=Next[p])
#define Lson (o<<1)
#define Rson ((o<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define F (1000000007)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define vi vector<int>
#define pi pair<int,int>
#define SI(a) ((a).size())
#define Pr(kcase,ans) printf("Case #%d: %I64d\n",kcase,ans);
#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;
#define PRi2D(a,n,m) For(i,n) { \
For(j,m-) cout<<a[i][j]<<' ';\
cout<<a[i][m]<<endl; \
}
#pragma comment(linker, "/STACK:102400000,102400000")
#define ALL(x) (x).begin(),(x).end()
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
ll mul(ll a,ll b){return (a*b)%F;}
ll add(ll a,ll b){return (a+b)%F;}
ll sub(ll a,ll b){return ((a-b)%F+F)%F;}
void upd(ll &a,ll b){a=(a%F+b%F)%F;}
int read()
{
int x=,f=; char ch=getchar();
while(!isdigit(ch)) {if (ch=='-') f=-; ch=getchar();}
while(isdigit(ch)) { x=x*+ch-'0'; ch=getchar();}
return x*f;
}
vector<pi > v;
int main()
{
// freopen("C.in","r",stdin);
// freopen(".out","w",stdout);
int n=read();
int now=;
For(i,n) {
int a=read(),b=read();
v.pb(mp(now,b));
now+=a;
}
sort(ALL(v));
bool fl=;
Rep(i,n-)
if (v[i].se<v[i+].se)
fl=;
if (!fl) puts("Impossible");
else {
if (v[].se==) puts("Infinity");
else {
int p=;
Rep(i,n) if (v[i].se==) {
p=v[i].fi;
}
++p;
p=-p+now;
cout<<p<<endl;
}
}
return ;
}
D.New Year and Fireworks
数组开小了居然不RE……没地方(┬_┬)
#include<bits/stdc++.h>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define ForkD(i,k,n) for(int i=n;i>=k;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=Pre[x];p;p=Next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=Next[p])
#define Lson (o<<1)
#define Rson ((o<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define F (1000000007)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define vi vector<int>
#define pi pair<int,int>
#define SI(a) ((a).size())
#define Pr(kcase,ans) printf("Case #%d: %I64d\n",kcase,ans);
#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;
#define PRi2D(a,n,m) For(i,n) { \
For(j,m-) cout<<a[i][j]<<' ';\
cout<<a[i][m]<<endl; \
}
#pragma comment(linker, "/STACK:102400000,102400000")
#define ALL(x) (x).begin(),(x).end()
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
ll mul(ll a,ll b){return (a*b)%F;}
ll add(ll a,ll b){return (a+b)%F;}
ll sub(ll a,ll b){return ((a-b)%F+F)%F;}
void upd(ll &a,ll b){a=(a%F+b%F)%F;}
int read()
{
int x=,f=; char ch=getchar();
while(!isdigit(ch)) {if (ch=='-') f=-; ch=getchar();}
while(isdigit(ch)) { x=x*10+ch-'0'; ch=getchar();}
return x*f;
}
int n,t[];
int dir[][]={{,},{-,},{-,},{-,-},{,-},{,-},{,},{,}};
bool f[][][][][]={0};
bool b[][]={0};
int ans=;
void dfs(int x,int y,int d,int nowi,int l) {
if (f[x][y][d][nowi-][l]) return;
f[x][y][d][nowi-][l]=;
ans+=b[x][y]==;
b[x][y]=;
if (nowi==n && l==t[n]) {
return;
}
if (l==t[nowi]) {
nowi++,l=;
int d2=(d+)%8;
int nx=x+dir[d2][],ny=y+dir[d2][];
dfs(nx,ny,d2,nowi,l);
d2=(d+)%8;
nx=x+dir[d2][],ny=y+dir[d2][];
dfs(nx,ny,d2,nowi,l);
return;
}
++l;
int d2=d,nx=x+dir[d2][],ny=y+dir[d2][];
dfs(nx,ny,d2,nowi,l);
}
bool q[1000][][],q2[][][];
void bfs() {
MEM(q) MEM(q2)
q[155][][]=;
b[][]=;ans++;
int nowi=,l=;
while(nowi!=n||l!=t[nowi]) {
if (l==t[nowi]) {
Rep(i,) Rep(j,) Rep(k,) if (q[i][j][k]) {
int d2=(k+)%8;
int nx=i+dir[d2][],ny=j+dir[d2][];
q2[nx][ny][d2]=;
d2=(k+)%8;
nx=i+dir[d2][],ny=j+dir[d2][];
q2[nx][ny][d2]=;
}
nowi++,l=;
}
else {
Rep(i,) Rep(j,) Rep(k,) if (q[i][j][k]) {
int d2=k,nx=i+dir[d2][],ny=j+dir[d2][];
q2[nx][ny][d2]=;
}
l++;
}
Rep(i,) Rep(j,) Rep(k,) {
q[i][j][k]=q2[i][j][k],q2[i][j][k]=;
if (q[i][j][k]) {
ans+=b[i][j]==;
b[i][j]=;
}
}
}
}
int main()
{
// freopen("D.in","r",stdin);
// freopen("D.out","w",stdout);
cin>>n;
For(i,n) cin>>t[i],t[i]--;
bfs();
// dfs(,,,,);
cout<<ans<<endl;
return ;
}