当前位置:网站首页>B. Applejack and Storages
B. Applejack and Storages
2022-08-09 21:55:00 【秦小咩】
B. Applejack and Storages
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
This year in Equestria was a year of plenty, so Applejack has decided to build some new apple storages. According to the advice of the farm designers, she chose to build two storages with non-zero area: one in the shape of a square and another one in the shape of a rectangle (which possibly can be a square as well).
Applejack will build the storages using planks, she is going to spend exactly one plank on each side of the storage. She can get planks from her friend's company. Initially, the company storehouse has nn planks, Applejack knows their lengths. The company keeps working so it receives orders and orders the planks itself. Applejack's friend can provide her with information about each operation. For convenience, he will give her information according to the following format:
- ++ xx: the storehouse received a plank with length xx
- −− xx: one plank with length xx was removed from the storehouse (it is guaranteed that the storehouse had some planks with length xx).
Applejack is still unsure about when she is going to order the planks so she wants to know if she can order the planks to build rectangular and square storages out of them after every event at the storehouse. Applejack is busy collecting apples and she has completely no time to do the calculations so she asked you for help!
We remind you that all four sides of a square are equal, and a rectangle has two pairs of equal sides.
Input
The first line contains a single integer nn (1≤n≤1051≤n≤105): the initial amount of planks at the company's storehouse, the second line contains nn integers a1,a2,…,ana1,a2,…,an (1≤ai≤1051≤ai≤105): the lengths of the planks.
The third line contains a single integer qq (1≤q≤1051≤q≤105): the number of events in the company. Each of the next qq lines contains a description of the events in a given format: the type of the event (a symbol ++ or −−) is given first, then goes the integer xx (1≤x≤1051≤x≤105).
Output
After every event in the company, print "YES" if two storages of the required shape can be built from the planks of that company's set, and print "NO" otherwise. You can print each letter in any case (upper or lower).
Example
input
Copy
6 1 1 1 2 1 1 6 + 2 + 1 - 1 + 2 - 1 + 2
output
Copy
NO YES NO NO NO YES
Note
After the second event Applejack can build a rectangular storage using planks with lengths 11, 22, 11, 22 and a square storage using planks with lengths 11, 11, 11, 11.
After the sixth event Applejack can build a rectangular storage using planks with lengths 22, 22, 22, 22 and a square storage using planks with lengths 11, 11, 11, 11.
=========================================================================
开始做之前让我感到棘手的是2 4的次数会产生重复,后来发现根本没必要,直接统计2,4的次数即可,一个4会带来两个2,到时候直接扣除即可
即两个4可以,一个4,外加4个2也可以,之所以是4个就可以,是因为要扣除1一个4的影响。
不少题解动辄几百行数据结构来解这个题,感到不解的同时,也只能感叹一下本是用来方便问题解决的算法成了掣肘思维的绊脚石
# include<iostream>
# include<string.h>
# include<vector>
using namespace std;
int cnt[100000+10];
int two=0,four=0;
int main ()
{
int n;
cin>>n;
for(int i=1; i<=n; i++)
{
int x;
cin>>x;
cnt[x]++;
if(cnt[x]%2==0)
two++;
if(cnt[x]%4==0)
four++;
}
int t;
cin>>t;
while(t--)
{
char ch;
int x;
cin>>ch>>x;
if(ch=='-')
{
cnt[x]--;
if(cnt[x]%2==1)
two--;
if(cnt[x]%4==3)
four--;
}
else
{
cnt[x]++;
if(cnt[x]%2==0)
two++;
if(cnt[x]%4==0)
four++;
}
if(four>=2||(four>=1&&two>=4))
{
cout<<"YES"<<endl;
}
else
{
cout<<"NO"<<endl;
}
}
return 0;
}
边栏推荐
- [Cloud Native] 4.2 DevOps Lectures
- LeetCode26: remove duplicates in sorted array
- 4D Summary: 38 Knowledge Points of Distributed Systems
- AI+Medical: Using Neural Networks for Medical Image Recognition and Analysis
- PHP 2D array sorted by a field
- 阿里云架构师金云龙:基于云XR平台的视觉计算应用部署
- xctf攻防世界 Web高手进阶区 ics-05
- 金山云地震,震源在字节?
- 跨端技术方案选什么好?
- shell学习
猜你喜欢
nvm下node安装;node环境变量配置
Install win virtual machine on VMware
国内手机厂商曾为它大打出手,如今它却最先垮台……
How to Make Your Company Content GDPR Compliant
Liver all night to write a thirty thousand - word all the commands the SQL database, function, speaks clearly explain operators, content is rich, proposal collection + 3 even high praise!
Swift 需求 如何防止把view重复添加到win里面
[Cloud Native] 4.2 DevOps Lectures
反射机制篇
第十七期八股文巴拉巴拉说(数据库篇)
This article lets you quickly understand implicit type conversion [integral promotion]!
随机推荐
Rust 解引用
Js fifteen interview questions (with answers)
leetcode 38. 外观数列
Technology Sharing | How to Handle Header Cookies in Interface Automation Testing
肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!
2022 首期线下 Workshop!面向应用开发者们的数据应用体验日来了 | TiDB Workshop Day
xctf攻防世界 Web高手进阶区 shrine
Basic operations of openGauss database (super detailed)
MLOps的演进历程
小程序+自定义插件的关键性
Xiaohei's leetcode journey: 94. Inorder traversal of binary trees (supplementary Morris inorder traversal)
Basic JSON usage
AI+Medical: Using Neural Networks for Medical Image Recognition and Analysis
开发者必备:一文快速熟记【数据库系统】和【软件开发模型】常用知识点
FileZilla搭建FTP服务器图解教程
Leetcode 93 IP addresses
mysql 找不到或无法加载已注册的 .Net Framework Data Provider。
AI Knows Everything: Building and Deploying a Sign Language Recognition System from Zero
第 1 章 一大波数正在靠近——排序
【EF】数据表全部字段更新与部分字段更新