爱奇艺成长值代码

//恩,卡在80%的同学估计就是成长值的累加中没有处理成长值必须一直大于0这个吧。 #include<iostream>
#include<cstring>
using namespace std;
int main(){
	int grow[100];
	int task[100];
	memset(grow, 0, sizeof(grow));
	memset(task, 0, sizeof(task));
	int cmd;
	while (cin >> cmd){
		if (cmd == 1){
			int start, end, val;
			cin >> start >> end >> val;
			if (start < 1)
				continue;
			for (int i = start; i <= end; i++){
				if (grow[i] == 0 || grow[i] < val)
					grow[i] = val;
			}
		}
		else if (cmd == 2){
			int day, val;
			cin >> day >> val;
			if (day < 1)
				continue;
			if (task[day] == 0 || task[day] < val)
				task[day] = val;
		}
		else
			break;
	}  int result=0; for (int i = 1; i < 100; i++){
		result += grow[i];
		result = result < 0 ? 0 : result;
		result += task[i];
		result = result < 0 ? 0 : result;
	}
	cout << result << endl;
	return 0;
}

全部评论
果然没注意到这个点
点赞 回复 分享
发布于 2016-09-21 12:46
import java.util.Iterator; import java.util.Map; import java.util.Scanner; import java.util.TreeMap; public class M {  public static void main(String[] args)  {   Scanner sc = new Scanner(System.in);   TreeMap<Integer,Integer> map = new TreeMap<Integer,Integer>();   int sum = 0;   while(sc.hasNext())   {    int cmd = sc.nextInt();    //System.out.println(cmd);    if(cmd == 1)    {     int start = sc.nextInt();     //System.out.println(start);     int end = sc.nextInt();     //System.out.println(end);     int num = sc.nextInt();     //System.out.println(start + " " + end + " " + num);     if(start < 1)      continue;     else     {      for(int i = start; i <= end; i++)      {       if(!map.containsKey(i))       {        map.put(i,num);       }       else       {        int temp = map.get(i);        if(num > temp)         map.put(i,num);        else         continue;       }      }     }    }    else if(cmd == 2)    {     int day = sc.nextInt();     int NUM = sc.nextInt();     //System.out.println(day + " " + NUM);     if(day < 1)      continue;     else     {      if(!map.containsKey(day))       map.put(day,NUM);      else      {       int temp = map.get(day);       temp = temp + NUM;       map.put(day,temp);      }     }    }    else     break;   }   Iterator it = map.entrySet().iterator();   while(it.hasNext())   {    Map.Entry<Integer,Integer> entry = (Map.Entry<Integer, Integer>)it.next();    Integer i = entry.getValue();    sum += i;      }   if(sum <= 0)    System.out.println(0);   else       System.out.println(sum);  } }
点赞 回复 分享
发布于 2016-09-18 20:42
这个编程题用js编了一个小时,然而还是没搞出来,没太看懂
点赞 回复 分享
发布于 2016-09-18 18:42
楼主精辟~~!
点赞 回复 分享
发布于 2016-09-18 18:27
if (task[day] == 0 || task[day] < val) task[day] = val; 这句不是只能更新task[day]一个值吗?能更新一个区间重复的数吗?求解
点赞 回复 分享
发布于 2016-09-18 18:24

相关推荐

野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务