Дана строка, содержащая последовательность слов, разделенных пробелами. Напечатать порядковые номера тех слов, которые содержат повторяющиеся буквы. Если таких слов в строке нет, выдать «NO».
1) const n=10; var a:array[1..n] of integer; i,min,s:integer; begin for i:=1 to n do begin a[i]:=random(81)+10; write(a[i]:4); end; writeln; min:=a[1]; for i:=1 to n do begin if a[i]<min then min:=a[i]; s:=s+a[i]; end; writeln('min = ',min); writeln('s = ',s); end.
Пример: 54 58 67 78 58 79 54 78 44 60 min = 44 s = 630
2) const n=9; m=6; var a:array[1..n,1..m] of integer; i,j:integer; begin for i:=1 to n do for j:=1 to m do a[i,j]:=i; for i:=1 to n do begin for j:=1 to m do write(a[i,j]); writeln; end; end.
#include <iostream>
#include <vector>
#include <set>
using namespace std;
void solve() {
string str, s;
getline(cin, str);
vector<string> a;
set<char> letters;
bool ok = false;
for(int i = 0; i <= str.length(); i++){
if(i == str.length() || str[i] == ' '){
if(ok)
a.push_back(s);
s.clear();
ok = false;
letters.clear();
}
else{
s += str[i];
ok |= (letters.find(str[i]) != letters.end());
letters.insert(str[i]);
}
}
if(a.empty())
cout << "NO";
else
for(auto &i: a) cout << i << " ";
}
int main(){
solve();
}