CF1791E(#849 div4)
  • 板块灌水区
  • 楼主ytyuhuan
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/2/7 15:57
  • 上次更新2023/10/24 01:28:29
查看原帖
CF1791E(#849 div4)
225797
ytyuhuan楼主2023/2/7 15:57

RT(题目版没讨论我怕看不见)

#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <algorithm>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>

using namespace std;
int t;
long long s[200010];
int main()
{
	cin>>t;
	memset(s,0,sizeof(s));
	for(int q=1; q<=t; q++)
	{
		int n;
		long long a[200010];
		cin>>n;
		for(int i=1; i<=n; i++) cin>>a[i];
		while(1)
		{
			bool flag=true;
			for(int i=1; i<=n; i++)
			{
				if(a[i]<0)
				{
					if(i==n)
					{
						if(a[i-1]>0)
						{
							if((a[i]*=-1)>a[i-1])
							{
								a[i]*=-1;
								a[i-1]*=-1;
								cout<<a[i]<<" 1"<<endl;
								flag=false;
							}
							else cout<<a[i]<<" 2"<<endl;
						}
						else
						{
							a[i]*=-1;
							a[i-1]*=-1;
							cout<<a[i]<<" 3"<<endl;
							flag=false;
						}
					}
					else
					{
						if(a[i+1]<0)
						{
							a[i]*=-1;
							a[i+1]*=-1;
							cout<<a[i]<<" 4"<<endl;
							flag=false;
						}
						else
						{
							if(a[i+1]==0)
							{
								a[i]*=-1;
								cout<<a[i]<<" 5"<<endl;
								flag=false;
							}
							else
							{
								if((a[i]*=-1)>a[i+1])
								{
									a[i]*=-1;
									a[i+1]*=-1;
									cout<<a[i]<<" 6"<<endl;
									flag=false;
								}
								else cout<<a[i]<<" 7"<<endl;
							}
						}
					}
				}
			}
			if(flag==true)
			{
				for(int i=1; i<=n; i++)
				{
//					cout<<i<<"="<<a[i]<<endl;
					s[q]+=a[i];
				}
				break;
			}
		}
	}
	for(int q=1; q<=t; q++) cout<<s[q]<<endl;
	return 0;
}

打注释的是我用来排bug的,然后现在就很迷茫,调了半小时了还是有两个样例不对,输出如下

3
13
6
41
2
2023/2/7 15:57
加载中...