P8901求助
  • 板块学术版
  • 楼主tonyzzzz
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/9/7 15:58
  • 上次更新2023/11/2 22:28:08
查看原帖
P8901求助
384810
tonyzzzz楼主2023/9/7 15:58

第四个点后面N>1不知道为什么都是wa.. 提交记录:https://www.luogu.com.cn/record/124011955

#include <iostream>
#include <math.h>
#include <vector>
#include <algorithm> 
using namespace std;
int T, N, in1;
int minr,nowr,win;
vector<int> nums;
int is_prime(int num)
{
    if(num==2||num==1) return true;
    for (int i = 2; i <= sqrt(num) + 1; i++)
    {
        if (num % i == 0)
        {
            return false;
        }
    }
    return true;
}
int main()
{
    cin >> T;
    for (int i = 1; i <= T; i++)
    {
        nums.clear();
        cin >> N;
        for (int o = 0; o <= N-1; o++)
        {
            cin >> in1;
            nums.push_back(in1);
        }
        minr=99999999;
        for(int o = N-1; o >=0; o--){
            if(nums[o]%4==0){
                nowr=nums[o]/2;
            }else{
                for(int j=0;j<=nums[o];j+=4){
                    if(is_prime(nums[o]-j)){
                        nowr=j/2+1;
                        break;
                    }
                }               
            }
            if(nowr/2<minr/2){
                if(nums[o]%4==0){
                    win=1;
                }else{
                    win=0;
                }
            }
            minr=min(minr/2,nowr/2);
        }
        if(win){
            cout<<"Farmer Nhoj"<<endl;
        }else{
            cout<<"Farmer John"<<endl;
        }
    }
}
2023/9/7 15:58
加载中...