cc Hotel Balifornia 2

简介:

    cc的题描述都很奇特的感觉,这是个模拟题,时间限制卡的很严格,如果不手写io操作的话都会上1s,手写io可以降到0.57s。

    看了个大神程序IO用了getchar_unlocked()但是windows下好像不行,就用getchar()代替了

    题目链接

/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#define Maxn 314160
using namespace std;
inline void inp( int &n )//fast input function
{
	n=0;
	int ch=getchar(),sign=1;
	while( ch < '0' || ch > '9' ){if(ch=='-')sign=-1; ch=getchar();}
	while( ch >= '0' && ch <= '9' )
 		n=(n<<3)+(n<<1)+ ch-'0', ch=getchar();
	n=n*sign;
	return;
}
int R[Maxn];//房间客人编码
int room[Maxn],start[Maxn];
int n,m;
int main()
{
    int T,i;
    scanf("%d",&T);
    while(T--)
    {
        inp(n);inp(m);
        memset(R,0,n*sizeof(R[0]));
        int time,inc,now=0,ll=n-1;
        for(i=1;i<=m;i++)
        {
            inp(time);
            inp(inc);
            start[i]=time;
            if(n!=now)//没住满,依次安排
            {
                room[i]=now-inc;
                R[now++]=i;
            }
            else//已住满,赶走之前的人
            {
                if(inc==n){room[i]=0;continue;}//没房间,必须要在这判断,不然坐等超时
                room[i]=ll-inc;
                start[R[ll]]=time-start[R[ll]];
                R[ll]=i;
            }
        }
        ++time;
        for(i=0;i<n;i++)
            start[R[i]]=time-start[R[i]];
        for(i=1;i<=m;i++)
          printf("%d %d\n",room[i],start[i]);
    }
}


目录
相关文章
|
4月前
|
算法
CF 1561
【7月更文挑战第20天】
47 2
|
5月前
|
芯片
CC2500和CC1101移植说明
主要通过如何移植、移植注意、关于芯片配置、如何生成导出配置四大步骤来说明CC2500和CC1101移植
|
人工智能
CF628B
CF628B
68 0
|
人工智能 网络架构
CF 698A
CF 698A
73 0
|
人工智能
cf 220B(莫队)
cf 220B(莫队)
97 0
CF1000F One Occurrence(莫队)
CF1000F One Occurrence(莫队)
54 0