码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #416 (Div. 2) A+B

时间:2017-05-28 00:26:48      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:osi   span   order   ber   opened   mount   ret   codeforce   stdio.h   

A. Vladik and Courtesy
2 seconds
256 megabytes
 

At regular competition Vladik and Valera won a and b candies respectively. Vladik offered 1 his candy to Valera. After that Valera gave Vladik 2 his candies, so that no one thought that he was less generous. Vladik for same reason gave 3 candies to Valera in next turn.

More formally, the guys take turns giving each other one candy more than they received in the previous turn.

This continued until the moment when one of them couldn’t give the right amount of candy. Candies, which guys got from each other, theydon’t consider as their own. You need to know, who is the first who can’t give the right amount of candy.

Input

Single line of input data contains two space-separated integers ab (1 ≤ a, b ≤ 109) — number of Vladik and Valera candies respectively.

Output

Pring a single line "Vladik’’ in case, if Vladik first who can’t give right amount of candy, or "Valera’’ otherwise.

 
input
1 1
output
Valera
input
7 6
output
Vladik
Note:

Illustration for first test case:

技术分享

Illustration for second test case:

技术分享

题目大意:

     Vladik and Valera 各有a块和b块糖,他两个轮流送给对方糖果,Vladik and Valera 1块、

     Valera送给Vladik 2块、Vladik and Valera 3块....直到有一方无法送出相应的糖果时结束。

     输出对应的人名。

解题思路:暴力模拟即可。

技术分享
 1 #include <stdio.h>
 2 int main ()
 3 {
 4     int a,b;
 5     while (~scanf("%d%d",&a,&b))
 6     {
 7         for (int i = 1;a>=0&&b>=0; i ++)
 8         {
 9             if (i%2) a-= i;
10             else b -= i;
11         }
12         if (a < 0)
13             printf("Vladik\n");
14         else
15             printf("Valera\n");
16     }
17     return 0;
18 }
View Code

 

 

B. Vladik and Complicated Book
 
2 seconds
256 megabytes
 

Vladik had started reading a complicated book about algorithms containing n pages. To improve understanding of what is written, his friends advised him to read pages in some order given by permutation P = [p1, p2, ..., pn], where pi denotes the number of page that should be read i-th in turn.

Sometimes Vladik’s mom sorted some subsegment of permutation P from position l to position r inclusive, because she loves the order. For every of such sorting Vladik knows number x — what index of page in permutation he should read. He is wondered if the page, which he will read after sorting, has changed. In other words, has px changed? After every sorting Vladik return permutation to initial state, so you can assume that each sorting is independent from each other.

Input

First line contains two space-separated integers nm (1 ≤ n, m ≤ 104) — length of permutation and number of times Vladik‘s mom sorted some subsegment of the book.

Second line contains n space-separated integers p1, p2, ..., pn (1 ≤ pi ≤ n) — permutation P. Note that elements in permutation are distinct.

Each of the next m lines contains three space-separated integers lirixi (1 ≤ li ≤ xi ≤ ri ≤ n) — left and right borders of sorted subsegment in i-th sorting and position that is interesting to Vladik.

Output

For each mom’s sorting on it’s own line print "Yes", if page which is interesting to Vladik hasn‘t changed, or "No" otherwise.

 
input
5 5
5 4 3 2 1
1 5 3
1 3 1
2 4 3
4 4 4
2 5 3
output
Yes
No
Yes
Yes
No
input
6 5
1 4 3 2 5 6
2 4 3
1 6 2
4 5 4
1 3 3
2 6 3
output
Yes
No
Yes
No
Yes
Note:

Explanation of first test case:

  1. [1, 2, 3, 4, 5] — permutation after sorting, 3-rd element hasn’t changed, so answer is "Yes".
  2. [3, 4, 5, 2, 1] — permutation after sorting, 1-st element has changed, so answer is "No".
  3. [5, 2, 3, 4, 1] — permutation after sorting, 3-rd element hasn’t changed, so answer is "Yes".
  4. [5, 4, 3, 2, 1] — permutation after sorting, 4-th element hasn’t changed, so answer is "Yes".
  5. [5, 1, 2, 3, 4] — permutation after sorting, 3-rd element has changed, so answer is "No".

 

题目大意:

     输入n个整数,然后有m次询问。每次询问输入三个整数L,R,X,将[L,R]范围内的整数从小到大排序,

     判断第X个整数的位置是否发生变化。

解题思路:

     下午写的时候,特意看了下数据范围,发现不是太大就直接sort了。不过最后被无情的hack了。。。。

     后来在codeforces群里看大佬们讨论时提到一种思路,对于每一个询问只用判断[L,R]中小于第X个整数的个数

     是否等于X-L(因为 (1 ≤ li ≤ xi ≤ ri ≤ n) 所以只要在[L,R]中有X-L个整数小于Xi排序之后就不会影响Xi的位置

 1 #include <stdio.h>
 2 int main ()
 3 {
 4     int n,m,i,l,r,x;
 5     int p[10010];
 6     while (~scanf("%d%d",&n,&m))
 7     {
 8         for (i = 1; i <= n; i ++)
 9             scanf("%d",&p[i]);
10         while (m --)
11         {
12             int sum = 0;
13             scanf("%d%d%d",&l,&r,&x);
14             for(i = l; i <= r; i ++)
15                 if (p[i] < p[x])
16                     sum ++;
17             if (x-l == sum)
18                 printf("Yes\n");
19             else
20                 printf("No\n");
21         }
22     }
23     return 0;
24 }

 

Codeforces Round #416 (Div. 2) A+B

标签:osi   span   order   ber   opened   mount   ret   codeforce   stdio.h   

原文地址:http://www.cnblogs.com/yoke/p/6914768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!