各位大佬,这题为什么错?
  • 板块题目总版
  • 楼主WINDSTORM
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/6/26 13:19
  • 上次更新2023/11/4 21:28:08
查看原帖
各位大佬,这题为什么错?
242872
WINDSTORM楼主2021/6/26 13:19

众所周知,林荫是一个秃头程序员,而他的女神 DJDJ 则是一位美丽的艺术生。为了让女神多看自己一眼,林荫决定提高程序员的自我修养。经过严密的定量分析,林荫意识到只有自己的艺术值达到且恰好为 KK 的时候,最能吸引 DJDJ 的注意力。目前有 NN 种艺术课程,每种课程可以为林荫提供 Val[i]Val[i] 点艺术值。若记林荫初始的艺术值为 00,由于林荫忙于竞赛,且林荫希望自己能多学一些技能,林荫仅能且必须选择三种课程来获得刚好为 KK 的艺术值。请输出所有的课程组合(用一个三元组表示,三个元素分别为所选三种课的编号),并按照课程编号从小到大排序三元组。

输入格式

第一行两个正整数 N,KN,K。

下面一行 NN 个正整数,第 ii 个代表 Val[i]Val[i]。

输出格式

一个正整数代表三元组个数。下面每行输出一个三元组,三个数字间用空格隔开。

数据范围

所有的 Val[i]Val[i] 均小于等于 100000100000 且均不相等。

对于 40%40% 的数据,n \le 100n≤100。

对于 70%70% 的数据,n\le 5000n≤5000。

对于 100%100% 的数据,n\le 10000n≤10000。

提示

数据 1010 较为极限,请注意优化。

输出时每行末尾的多余空格,不影响答案正确。

样例输入复制

5 6

1 2 3 4 5

样例输出复制

1

1 2 3

#include<bits/stdc++.h>
using namespace std;
int n,k,a[100000],cnt=1,f; 
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int x=1;x<=n;x++)
	{
		for(int y=x+1;y<=n;y++)
		{
			for(int z=y+1;z<=n;z++)
			{
				int ans=y+x+z;
				if(ans==k)
				{
					cout<<cnt<<endl<<x<<" "<<y<<" "<<z<<endl;
					cnt++;
					f=1;
				}
			}	
		}
	}
	if(f==0)
	{
		cout<<0;
	}
    return 0;
}
2021/6/26 13:19
加载中...