CSU 1559 배달 주문

4930 단어 su
제목 링크;http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82842#problem/E배달 을 주문 하 다
문제 풀이 방향:두 개의 배열 을 정의 합 니 다.a[]는 만 A 를 표시 하고 b[]는 감 B 를 표시 합 니 다.즉,만 A-B 는 a[i]-b[i]를 표시 합 니 다.x 는 배달 비용 을 한 번 살 때 f 에 비교적 큰 값 을 부여 합 니 다.입력 한 x 와 a[i]를 비교 한 다음 에 b[i]와 차 이 를 내 고 j 에 게 부여 한 다음 에 j 와 f 에서 가장 작은 것 을 취하 고 순환 이 끝 난 후에 가장 혜택 적 인 방안 입 니 다.
프로그램 코드:
 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 using namespace std;
 6 int a[105],b[105];
11 int main()
12 {
13     int t;cin>>t;
14     while(t--)
15     {
16         memset(a,0,sizeof(a));
17         memset(b,0,sizeof(b));
18         int n,i,m;
19         cin>>n>>m;
20         for( i=0;i<n;i++)
21             scanf("%d%d",&a[i],&b[i]);
22         int sum=0;
23         while(m--)
24             {
25                 int j,x,f=10000;
26             scanf("%d",&x);
27             for( i=0;i<n;i++)
28             if(x>=a[i]) { j=x-b[i]; if(j<f)     f=j;}
29             if(f==10000)
30                 sum=sum+x;
31             else sum=sum+f;
32             }
33             cout<<sum<<endl;
34 
35     }
36     return 0;
37 }

좋은 웹페이지 즐겨찾기