// PascalABC.NET 3.2, сборка 1370 от 24.12.2016 // Внимание! Если программа не работает, обновите версию!
begin var m:=ReadInteger('Количество строк в массиве:'); var n:=ReadInteger('Количество столбцов в массиве:'); var a:=MatrFill(m,n,0); for var i:=0 to m-1 do for var j:=0 to n-1 do Read(a[i,j]); Writeln('В 5-й строке число 13 встречено в колонке ', a.Row(4).IndexOf(13)+1) end.
Пример Количество строк в массиве: 7 Количество столбцов в массиве: 8 -4 10 -6 19 -3 -6 18 -9 16 12 18 8 14 11 4 10 -10 -4 -7 13 11 -4 4 -2 -6 1 11 8 1 11 7 8 18 6 14 -7 -8 13 5 13 -1 6 14 8 -5 11 -2 -5 20 16 7 -4 6 5 20 -10 В 5-й строке число 13 встречено в колонке 6
#include <iostream>
typedef long long ll;
using namespace std;
bool ll_is_valid(ll t, ll N, ll x, ll y)
{
return t / x + (t - x) / y >= N;
}
ll f(ll N, ll x, ll y)
{
ll R = 1;
while (!ll_is_valid(R,N,x,y)) R *= 2;
ll L = R / 2;
while(R - L > 1)
{
ll M = (L + R) / 2;
if (!ll_is_valid(M,N,x,y)) {L = M;}
else {R = M;}
}
return R;
}
int main()
{
ll N,x,y;
cin >> N >> x >> y;
if(x > y) swap( x, y );
cout << f(N, x, y) << std::endl;
}
// Внимание! Если программа не работает, обновите версию!
begin
var m:=ReadInteger('Количество строк в массиве:');
var n:=ReadInteger('Количество столбцов в массиве:');
var a:=MatrFill(m,n,0);
for var i:=0 to m-1 do
for var j:=0 to n-1 do Read(a[i,j]);
Writeln('В 5-й строке число 13 встречено в колонке ',
a.Row(4).IndexOf(13)+1)
end.
Пример
Количество строк в массиве: 7
Количество столбцов в массиве: 8
-4 10 -6 19 -3 -6 18 -9
16 12 18 8 14 11 4 10
-10 -4 -7 13 11 -4 4 -2
-6 1 11 8 1 11 7 8
18 6 14 -7 -8 13 5 13
-1 6 14 8 -5 11 -2 -5
20 16 7 -4 6 5 20 -10
В 5-й строке число 13 встречено в колонке 6