L1-049 天梯赛座位分配 (20分)

    科技2022-07-20  102

    L1-049 天梯赛座位分配 (20分)

    #include <bits/stdc++.h> #define int ll #pragma GCC optimize(2) using namespace std; typedef long long ll; const int maxn=3e5+10; int f[105],m[105]; void solve() { int n,sum=0,num=0,dui=0; cin>>n; for (int i = 0; i <n; ++i) cin>>m[i],m[i]*=10,sum+=m[i]; vector<int > a[105]; memset(f, 0, sizeof(f)); for (int i = 1;;) { int t=0; while(t<n) { if(a[t].size()<m[t]){ num++; a[t].push_back(i); if (dui+1==n) i+=2; else i++; } if (f[t]==0&&a[t].size()>=m[t]) f[t]=1,dui++; t++; } if (num==sum) break; } for (int i = 0; i < n; ++i) { cout<<"#"<<i+1<<"\n"; for (int j = 0; j < a[i].size(); ++j) cout<<(j%10!=0?" ":"")<<a[i][j]<<(j%10==9?"\n":""); cout<<(a[i].size()%10!=0?"\n":""); } } signed main() { ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); int _ = 1; //cin >> _; while (_--) { solve(); } return 0; }
    Processed: 0.011, SQL: 8