2 solutions

  • 2
    @ 2023-10-28 12:42:10
    #include<iostream>
    using namespace std;
    int a[360]={0};//创建一个360度的饼,初始化为0
    int main()
    {
     int t,z=0;
     cin>>t;
     a[z]=1;//先切一刀
     for(int i=0;i<t;i++)
     {
      int x;
      cin>>x;//输入
      z+=x;//加角度
      if(z>=360)//判断是否超出360度
      {
       z%=360;
      }
      a[z]=1;//切饼
     }
     int mx=0,s=0;
     for(int j=0,i=0;j<720;j++,i++)//查看最大间距
     {
      if(i==360)//i超出360度又回到0度(仅一次)
      {
       i=0;
      }
      if(a[i]==1)//发现被切了
      {
       if(s>mx)//是否是最长长度
       {
        mx=s;//设置最长长度
       }
       s=0;//重置
      }
      s++;//长度增加
     }
     cout<<mx;//输出
     return 0;//完结散花!
    }
    
    • 0
      @ 2024-11-20 16:48:13
      //头文件 
      //#include<bits/stdc++.h>
      //using namespace std;
      //模拟圆的360度 
      //bool a[365];
      //切几刀 
      //int n;
      //角度 
      //int x[365];
      //饼的角度 
      //int sum = 0;
      
      
      //int main()
      //{
      
      //输入 
      //	cin >> n;
      
      //先切一刀
      //	a[0] = true;
      
      //切饼
      //	for(int i = 1; i <= n; i++)
      //	{
      //输入
      //		cin >> x[i];
      //加角度
      //		sum = (sum+x[i])%360;
      //切角 
      //  		a[sum]=true;
      // 	}
      
      // 最大和计数 
      // 	int maxlong=0, loong=0;
      
      //寻找最大角度
      // 	for(int j = 0, i = 0; j < 720; j++, i++) 
      // 	{
      //  		if(i==360)
      //  		{
      //  	 		i = 0;
      //  		}
      //  		if(a[i])//发现被切了
      //  		{
      //   			if(loong > maxlong)//是否是最大角度
      //   			{
      //    			maxlong = loong;//设置当前最大角度
      //   			}
      //   			loong = 0;//重置
      //  		}
      //  		loong++;//角度增加 
      // 	}
      
      //输出最大角度 
      // 	cout << maxlong;
      
      //完结散花!
      // 	return 0;
      //}
      
      • 1

      Information

      ID
      935
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      9
      Tags
      (None)
      # Submissions
      354
      Accepted
      25
      Uploaded By