为什么就过了俩,佬佬救救
查看原帖
为什么就过了俩,佬佬救救
1165431
naseele楼主2023/12/13 15:52

Subtask #0 和Subtask #1分别过了一个评测点,其他都是紫色


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,q;//柜子个数和询问次数
    scanf("%d %d",&n,&q);
    int function_select = 0;
    vector<vector<int>>cabinet(n);//初始化n行,具体多少列到时候再分配
    auto it_b = cabinet.begin();
    auto it_eachrow_b = it_b->begin();
    int i,j,k;
    while(q--)
    {
        scanf("%d",&function_select);
        switch (function_select)
        {
        case 1:
            scanf("%d %d %d",&i,&j,&k);
            //此行未分配空间或此行空间少于j个
            if(cabinet[i-1].size() == 0||cabinet[i-1].size() < j)
            {
                cabinet[i-1].resize(j);
            }
            if (k != 0)
            {
                //cabinet[i-1].resize(j);
                cabinet[i-1][j-1] = k;
            }
            else if(cabinet[i-1].size() >= j)
            {
                cabinet[i-1].erase(it_eachrow_b + j-1);
            }
            break;
        
        default:
            scanf("%d %d",&i,&j);
            if(cabinet[i-1].size() == 0||cabinet[i-1].size() < j)
            {
                continue;
            }
            else
            {
                cout << cabinet[i-1][j-1] << endl;  
            }

            break;
        }
    }
    return 0;
}
2023/12/13 15:52
加载中...