搜狐AC代码

第一题直接按题意分析即可:
题目比较晕,需要慢慢读。
#include <iostream>
#include <vector>

using namespace std ;

int main(){
    int n , m ;
    while(cin >> n >> m){
        vector<int> arr(m , 0) ;
        for(int i = 0 ; i < m ; i++){
            cin >> arr[i] ;
        }
        
        vector<int> ans ;
        int end = 0 ;
        int sta = 0 ;
        for(int i = 0 ; i < m ; i++){
            if(arr[i] != 1){
                for(int j = 0 ; j < arr[i] ; j++){
                    ans.push_back(arr[i]) ;
                }
                end = i + 1 ;   //m的起始下标
                sta = i + 1 ;   //ans的起始下标
                break ;
            }
            else{
                ans.push_back(1) ;
            }
        }
        int num = ans.size() ;
        while(num <= n){
            end = end % m ;
            int len = ans[sta] ;
            
            for(int i = 0 ; i < len ; i++){
                ans.push_back(arr[end]) ;
            }
            sta ++ ;
    end ++ ;
            num = ans.size() ; 
        }
        for(int i = 0 ; i < n ; i++){
            cout << ans[i] << endl ;
        }
        
    }
    return 0;
}

第二题使用贪心即可AC100% , 我没保存AC代码,抱歉。
全部评论

相关推荐

02-15 22:29
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务