ccf C++ 201712-1最小值差 201712-2 遊戲

  • 201712-1最小值差

  • AC代碼
#include <bits/stdc++.h>
using namespace std;
int main()
{	
	int n;
	cin>>n;
	int min=10002;
	int a[1005];
	for(int i=0;i<n;i++)
		cin>>a[i];
	sort(a,a+n);
	for(int i=0;i<n-1;i++)
	{
		int temp=0;
		temp=a[i+1]-a[i];
		if(min>temp)
			min=temp;
	}
	cout<<min;	
	return 0;
 } 
  • 201712-2 遊戲 

  • 思路:用數組存儲所有人一開始狀態信息(未淘汰時)。如果當前數i滿足 i%k=0  或者i%10=k,就標註爲0他被淘汰,直到淘汰的人數爲n-1的時候,剩餘的1個人就是勝利者。然後找到這個人的下標輸出。
  • ac代碼
  • #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
    	int n;
    	int k;
    	int j=1;
    	int sum=0;
    	int a[1005];
    	memset(a,0,sizeof(a));
    	cin>>n>>k;
    	if(k==1||n==1)
    		cout<<n;
    	else{			
    		
    		for(int i=1;i<=n;i++)
    			a[i]=i;		
    		while(sum<n-1)
    		{
    			int i=1;
    			for(;i<=n;i++)
    			{
    				if(a[i]!=0)
    				{
    					if(j%k==0||j%10==k)
    					{
    						a[i]=0;
    						++sum;
    					}
    					j++;
    				}
    			}
    		}
    		sort(a,a+n+1);
    		cout<<a[n];
    	}
    	return 0;
    } 
    

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章