QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#687360#9528. New Energy VehiclebulingWA 1ms10004kbC++142.7kb2024-10-29 18:36:412024-10-29 18:36:42

Judging History

This is the latest submission verdict.

  • [2024-10-29 18:36:42]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 10004kb
  • [2024-10-29 18:36:41]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
#define lll i << 1
#define rrr i << 1 | 1


//
 #define ll long long
 #define int long long

	#define ld long double
	#define rint register int
	#define inv inline void
	#define ini inline int
    inline int read()
    {
        int sum=0;
        char ch=getchar();
        while(ch>'9'||ch<'0') ch=getchar();
        while(ch>='0'&&ch<='9') sum=sum*10+ch-48,ch=getchar();
        return sum;
    }//读入优化

    
    inline void print(int x){
        if(!x){
            putchar('0');
            return;
        }
        int num[22],siz=0,px=x;
        while(px){
            siz++;
            num[siz]=px%10;
            px/=10;
        }
        while(siz){
            putchar(num[siz]+'0');
            siz--;
        }
    }   //快速输出
      
    long long max(long long a,long long b)
    {
       return a>b?a:b;
    }
      
    long long min(long long a,long long b)
    {
       return a<b?a:b;
    }
     
      
    const int N=1e6+7;
    const int N2=2e5+5; 
    int mod=9999973;
    //int Mod=1e15+7;
    const int INF=2e17;
  	const double eps=1e-10;
 	const double PI=3.1415926535;
//priority_queue<int , vector<int >, greater<int >> q;
//priority_queue<int > q;
//map<string ,int>mp,mmp;
 //typedef pair<int ,int > PII;
//stack < PII > p;
 
//queue<int > q;
//char s1[2020],s2[2020];
//vector<vector<int>> c(n+13,vector<int>(m+3));
//map<int,int>mp;
 
//priority_queue<pair<int, int>, vector<pair<int, int> >, greater<pair<int, int> > >q[1001][1001],p;
 //a.erase(unique(a.begin(), a.end()), a.end());
//char p,q;
//char s[N];
//deque<int > q;
//queue<int> q;
using ull = unsigned long long;
//ull mod=212370440130137957ll;

int ma,mi;
int  n,m,t;

int a[N],b[N],c[N],f[N];

//
struct node
{
	
	int y,z,x;
	
}p[N];
inline bool cmp(node w,node v)
{
	
	return w.x>v.x;	
}

//
//int fx[5]={-1,0,0,1};
//int fy[5]={0,-1,1,0};



signed main()
{
	std::ios::sync_with_stdio(false);//取消cin与stdin同步,加速读入 
	cin.tie(0);cout.tie(0);
 	
 	t=1;
 	string s;
	cin>>t;

	while(t--)
	{
		int res=0,tt=0,ans=0,k,fa=0;
		ma=0,mi=2e17;
		map<int,int> mp;
		multiset<int> se;
		cin>>n>>m;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			ans+=a[i];
		}
		tt=ans;
		//b[m]=2e17;
		for(int i=1;i<=m;i++)
		{
			int x,y;
			cin>>b[i]>>c[i];
			if(ans<b[i]-b[i-1])
			{
				if(ans)
					res=ans+b[i-1];
				ans=0;
			}
			else
			{
				if((tt-ans+b[i]-b[i-1])<=a[c[i]])
					ans=tt;
				else
				{
					ans-=b[i]-b[i-1]-max(0,a[c[i]]-(tt-ans));	
					//ans+=a[c[i]];
				}	
			}
		}
		if(ans)
			res=ans+b[m];
		cout<<res;
		cout<<"\n";
	}
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 10004kb

input:

2
3 1
3 3 3
8 1
2 2
5 2
1 2
2 1

output:

12
9

result:

ok 2 lines

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 9708kb

input:

6
3 2
2 2 2
6 1
7 1
2 2
3 3
2 1
6 2
2 3
2 2
5 1
7 2
9 1
2 2
3 3
2 1
6 2
1 1
999999999
1000000000 1
1 1
1000000000
1000000000 1

output:

8
11
4
11
999999999
2000000000

result:

wrong answer 1st lines differ - expected: '9', found: '8'