比赛 |
20250904开学热身赛 |
评测结果 |
ATTTT |
题目名称 |
内存分配 |
最终得分 |
20 |
用户昵称 |
汐汐很希希 |
运行时间 |
7.251 s |
代码语言 |
C++ |
内存使用 |
24.85 MiB |
提交时间 |
2025-09-04 20:56:16 |
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e7,M=10010;
int n;
struct work
{
int t,m,p,cd,inc;
}a[N];
int tl=0,cnt=0,sum=0;
bool vis[M],d[N];
int pd(int l)
{
int cnt1=0,dizhi=0;
for(int i=1;i<=n;i++){
if(!d[i]&&dizhi==0) dizhi=i,cnt1++;
else if(!d[i]) cnt1++;
else if(d[i]) cnt1=0,dizhi=0;
if(cnt1==l) return dizhi;
}
return 0;
}
int main()
{
freopen("memory.in","r",stdin);
freopen("memory.out","w",stdout);
cin>>n;
int t1,m1,p1,k=1;
cin>>t1>>m1>>p1;
while(t1!=0||m1!=0||p1!=0){
a[k].t=t1,a[k].m=m1,a[k].p=p1,a[k].cd=0;
cin>>t1>>m1>>p1;
k++;
}
k--;
queue<int> q;
int i=1;
while(sum<k){
for(int ik=1;ik<=k;ik++){
if(vis[ik]){
a[ik].p--;
if(a[ik].p<=0){
sum++;
vis[ik]=false;
for(int j=a[ik].cd;j<=a[ik].cd+a[ik].m-1;j++) d[j]=false;
}
}
}
if(!q.empty())
{
int f=q.front();
int dz1=pd(a[f].m);
if(dz1!=0){
q.pop();
vis[f]=true;
a[f].inc=tl;
a[f].cd=dz1;
for(int j=dz1;j<=dz1+a[f].m-1;j++) d[j]=true;
}
}
if(a[i].t==tl){
int dz=pd(a[i].m);
if(dz!=0){
vis[i]=true;
a[i].inc=tl;
a[i].cd=dz;
for(int j=dz;j<=dz+a[i].m-1;j++) d[j]=true;
}else{
q.push(i);
cnt++;
}
i++;
}
tl++;
}
tl--;
cout<<tl<<endl;
cout<<cnt<<endl;
return 0;
}