ブルーブリッジカップの質問バンク シンプルな毎日の 10 問 day10

ここに画像の説明を挿入します

01 最小重量

最小重量の
問題の説明
あなたは天びんを持っています。
ここで、N 以下の正の整数の重みをこれらの重みを使用して計算できるように、重みのセットを設計する必要があります。では、この重みセットには少なくともいくつの重みを含める必要があるのでしょうか?
重りはスケールの両側に配置できることに注意してください。
入力形式
入力には正の整数 N が含まれます。
出力形式
答えを表す整数を出力します。
サンプル入力

7

サンプル出力

3

この例では、
3 つの重みの重みが 1、4、6 であることを示しており、1 から 7 までのすべての重みを計量できます。
1=1:
2=6-4 (スケールの片側に 6、反対側に 4 を置きます);
3=4-1;
4=4:
5=6-1:
6=6:
7=1+ 6:
3未満 1つの分銅で1から7までの全ての分銅を計量することは不可能です。
評価ユース ケースのスケールと規則
すべての評価ユース ケースでは、1≤N≤1000000000 です。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
    
    
  // 请在此输入您的代码
  //它让找到可以表示1-目标数字的最少砝码块,我们不妨找到不同砝码块个数所能表示到的最大值,如一个最大可以表示到1,两个(1,3)最大可以表示到4
  //因此我们可以找到最大值大于目标重量的砝码块数即可
  //找规律可得最大砝码块依次1,3,9,27.....可以看出为3的幂次
  int n;
  scanf("%d",&n);
  int weight=1;//表示其中最大的一个砝码
  int sum=1;//表示所能秤的最大重量
  int num=1;//表示所需要的砝码数目
  while(n>sum)
  {
    
    
    num++;
    weight*=3;
    sum+=weight;
  }
  printf("%d",num);
  return 0;
}

02 圧力計算

質問の説明
この質問は穴埋め問題です。結果を計算し、コード内の出力ステートメントを使用して埋められた結果を出力するだけです

貴金属原料の特定のバッチが、惑星 X のハイテク研究所に整然と積み上げられています。
それぞれの金属素材の形や大きさは全く同じですが、重さは異なります。金属素材を厳密に
ピラミッド状に積み上げます。

                             7 
                            5 8 
                           7 8 8 
                          9 2 7 2 
                         8 1 4 9 1 
                        8 1 8 8 4 1 
                       7 9 6 1 4 5 4 
                      5 6 5 5 6 9 5 6 
                     5 5 4 7 9 3 5 5 1 
                    7 5 7 9 7 4 7 3 3 1 
                   4 6 4 5 5 8 8 3 2 4 3 
                  1 1 3 3 1 6 6 5 5 4 4 2 
                 9 9 9 2 1 9 1 9 2 9 5 7 9 
                4 3 3 7 7 9 3 6 1 3 8 8 3 7 
               3 6 8 1 5 3 9 5 8 3 8 1 8 3 3 
              8 3 2 3 3 5 5 8 5 4 2 8 6 7 6 9 
             8 1 8 1 8 4 6 2 2 1 7 9 4 2 3 3 4 
            2 8 4 2 2 9 9 2 8 3 4 9 6 3 9 4 6 9 
           7 9 7 4 9 7 6 6 2 8 9 4 1 8 1 7 2 1 6 
          9 2 8 6 4 2 7 9 5 4 1 2 5 1 7 3 9 8 3 3 
         5 2 1 6 7 9 3 2 8 9 5 5 6 6 6 2 1 8 7 9 9 
        6 7 1 8 8 7 5 3 6 5 4 7 3 4 6 7 8 1 3 2 7 4 
       2 2 6 3 5 3 4 9 2 4 5 7 6 6 3 2 7 2 4 8 5 5 4 
      7 4 4 5 8 3 3 8 1 8 6 3 2 1 6 2 6 4 6 3 8 2 9 6 
     1 2 4 1 3 3 5 3 4 9 6 3 8 6 5 9 1 5 3 2 6 8 8 5 3 
    2 2 7 9 3 3 2 8 6 9 8 4 4 9 5 8 2 6 3 4 8 4 9 3 8 8 
   7 7 7 9 7 5 2 7 9 2 5 1 9 2 6 5 3 9 3 5 7 3 5 4 2 8 9 
  7 7 6 6 8 7 5 5 8 2 4 7 7 4 7 2 6 9 2 1 8 2 9 8 5 7 3 6 
 5 9 4 5 5 7 5 5 6 3 5 3 9 5 8 9 5 4 1 2 6 1 4 3 5 3 2 4 1 
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 

その中の数字は金属ブロックの重量 (大きい方の測定単位) を表します。
下部の X は 30 個の非常に高精度な電子秤を表しています。
各原料の重さが下の 2 つの金属ブロックに正確に均等にかかると仮定すると、最終的に
すべての金属ブロックの重さが下の電子秤に正確に均等にかかります。
電子秤は計測単位が非常に小さいため、表示される数値が非常に大きくなります。
スタッフは、読み取り値が最も小さい電子秤の読み取り値が 2086458231 であることを発見しました。
計算してください: 読み取り値が最も大きい電子秤は何ですか?

#include <stdio.h>
int main(void) {
    
    
    double arr[30][30] = {
    
    
            {
    
    7},
            {
    
    5, 8},
            {
    
    7, 8, 8},
            {
    
    9, 2, 7, 2},
            {
    
    8, 1, 4, 9, 1},
            {
    
    8, 1, 8, 8, 4, 1},
            {
    
    7, 9, 6, 1, 4, 5, 4},
            {
    
    5, 6, 5, 5, 6, 9, 5, 6},
            {
    
    5, 5, 4, 7, 9, 3, 5, 5, 1},
            {
    
    7, 5, 7, 9, 7, 4, 7, 3, 3, 1},
            {
    
    4, 6, 4, 5, 5, 8, 8, 3, 2, 4, 3},
            {
    
    1, 1, 3, 3, 1, 6, 6, 5, 5, 4, 4, 2},
            {
    
    9, 9, 9, 2, 1, 9, 1, 9, 2, 9, 5, 7, 9},
            {
    
    4, 3, 3, 7, 7, 9, 3, 6, 1, 3, 8, 8, 3, 7},
            {
    
    3, 6, 8, 1, 5, 3, 9, 5, 8, 3, 8, 1, 8, 3, 3},
            {
    
    8, 3, 2, 3, 3, 5, 5, 8, 5, 4, 2, 8, 6, 7, 6, 9},
            {
    
    8, 1, 8, 1, 8, 4, 6, 2, 2, 1, 7, 9, 4, 2, 3, 3, 4},
            {
    
    2, 8, 4, 2, 2, 9, 9, 2, 8, 3, 4, 9, 6, 3, 9, 4, 6, 9},
            {
    
    7, 9, 7, 4, 9, 7, 6, 6, 2, 8, 9, 4, 1, 8, 1, 7, 2, 1, 6},
            {
    
    9, 2, 8, 6, 4, 2, 7, 9, 5, 4, 1, 2, 5, 1, 7, 3, 9, 8, 3, 3},
            {
    
    5, 2, 1, 6, 7, 9, 3, 2, 8, 9, 5, 5, 6, 6, 6, 2, 1, 8, 7, 9, 9},
            {
    
    6, 7, 1, 8, 8, 7, 5, 3, 6, 5, 4, 7, 3, 4, 6, 7, 8, 1, 3, 2, 7, 4},
            {
    
    2, 2, 6, 3, 5, 3, 4, 9, 2, 4, 5, 7, 6, 6, 3, 2, 7, 2, 4, 8, 5, 5, 4},
            {
    
    7, 4, 4, 5, 8, 3, 3, 8, 1, 8, 6, 3, 2, 1, 6, 2, 6, 4, 6, 3, 8, 2, 9, 6},
            {
    
    1, 2, 4, 1, 3, 3, 5, 3, 4, 9, 6, 3, 8, 6, 5, 9, 1, 5, 3, 2, 6, 8, 8, 5, 3},
            {
    
    2, 2, 7, 9, 3, 3, 2, 8, 6, 9, 8, 4, 4, 9, 5, 8, 2, 6, 3, 4, 8, 4, 9, 3, 8, 8},
            {
    
    7, 7, 7, 9, 7, 5, 2, 7, 9, 2, 5, 1, 9, 2, 6, 5, 3, 9, 3, 5, 7, 3, 5, 4, 2, 8, 9},
            {
    
    7, 7, 6, 6, 8, 7, 5, 5, 8, 2, 4, 7, 7, 4, 7, 2, 6, 9, 2, 1, 8, 2, 9, 8, 5, 7, 3, 6},
            {
    
    5, 9, 4, 5, 5, 7, 5, 5, 6, 3, 5, 3, 9, 5, 8, 9, 5, 4, 1, 2, 6, 1, 4, 3, 5, 3, 2, 4, 1}
    }, max = 0, min = 9999;
    int i = 1, j = 0;
    for (i = 0; i < 30; ++i) {
    
    
        for (j = 0; j < 30; ++j) {
    
    
            if (j - 1 >= 0) {
    
    
                arr[i][j] += arr[i - 1][j - 1] / 2.0;
                if (29 == i) {
    
    
                    max = max < arr[i][j] ? arr[i][j] : max;
                    min = min > arr[i][j] ? arr[i][j] : min;
                }
            }
            if (i - 1 >= 0 && arr[i - 1][j] > 0) {
    
    
                arr[i][j] += arr[i - 1][j] / 2.0;
                if (29 == i) {
    
    
                    max = max < arr[i][j] ? arr[i][j] : max;
                    min = min > arr[i][j] ? arr[i][j] : min;
                }
            } else {
    
    
                break;
            }
        }
    }
    printf("%lld\n", (long long)(max * (2086458231.0 / min)));
    return 0;
}

03 数値の分解

質問の説明
この質問は穴埋め問題です。結果を計算し、コード内の出力ステートメントを使用して埋められた
結果を出力するだけです。
2019 を 3 つの異なる正の整数の合計に分解します。各正の整数には
2 と 4 という数字が含まれません。異なる分解方法は何通りありますか?
3 つの整数の順序の交換は同じメソッドとみなされます。たとえば、1000+1001+18
と 1001+1000+18 は同じメソッドとみなされます。

#include<iostream>
using namespace std;
bool judge(int n){
    
    
    while(true){
    
    
    if(n==0){
    
    
    return 1;
    break;    
    }
    if(n%10==2||n%10==4){
    
    
    return 0;
    break;    
    }
    n/=10;
    }
}
int main(){
    
    
    int sum=0;
    for(int i=1;i<=672;i++)
    for(int j=i+1;j<2019-i-j;j++)
    if(judge(2019-i-j)&&judge(j)&&judge(i))
    sum++;
    cout<<sum;
    return 0;
} 

04 ストレートデート

問題の説明:
この質問は穴埋め問題です。結果を計算した後は、コード内の出力ステートメントを使用して、
穴埋め結果を出力するだけです。
シャオミンは特にシュンジが好きです。ストレートとは、123、456 などの 3 つの連続する数字を指します。ストレート日付とは、日付の yyyymmdd 表現において、連続する 3 桁がストレート日付である日付を指します。たとえば、20220123 はストレート 123 を含むためストレート日付ですが、20221023 はストレートがないためストレート日付ではありません。Xiao Ming は、2022 年全体で連続デートが何回あるか知りたいと思っていますか?

#include<iostream>
using namespace std;
int day[13]={
    
    0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int q[])
{
    
    
    for(int i=3;i<=5;i++)
    {
    
    
        if(q[i]==(q[i+1]-1)&&q[i+1]==(q[i+2]-1))
        {
    
    
            return true;
        }
    }
    return false;         
}
int main()
{
    
    
    int q[8]={
    
    2,0,2,2};
    int res=0;
    for(int i=1;i<=12;i++)
    {
    
    
        q[4]=i/10%10;
        q[5]=i%10;
        for(int j=1;j<=day[i];j++)
        {
    
    
            q[6]=j/10%10;
            q[7]=j%10;
            if(check(q)) res++;
        }
        
    }
    cout<<res<<endl;
    return 0;
}

05 パイオニア齧歯動物駆除業者

問題の説明:
この質問は穴埋め問題です。結果を計算した後は、コード内の出力ステートメントを使用して、穴埋め結果を出力するだけです。
「Rat Exterminator」は、2人で参加し、交代で操作する全年齢対象のボードゲームです。
Rodent Vanguard のボードにはさまざまな仕様がありますが、この問題では 2 行 4 列のボードでゲームが行われます。
ゲームのルールは、2人が交代で操作し、チェス盤上の空いているスペースにチェスの駒を置くか、同じ列の連続する2つの空き
スペースにチェスの駒を置くかを
選択することができます。チェスの駒、チェス盤がいっぱいになった側が負けます。
Xiao Lan と Xiao Qiao は一緒にゲームをします。Xiao Lan が最初にプレイし、Xiao Qiao が 2 番目にプレイします。Xiaolan は
さまざまな方法でチェスの駒を配置でき、回転と反転によって次の 4 つの状況に対応できます。

XOOO XXOO OXOO OXXO
OOOO OOOO OOOO OOOO

このうち○はチェス盤上のマスが空いていることを意味し、×はそのマスにチェスの駒が置かれたことを意味します。
上記の 4 つの状況についてお聞きしたいのですが、シャオ ランとシャオ チャオが両方とも自分にとって最善の戦略に従ってゲームをプレイした場合、
シャオ ランは勝つことができますか? 勝てばV、勝てなければ
Lを使います。4つの状況の勝敗結果を順番に提出してください。

#include <iostream>
#include <map>
//必败局一定转化为必赢局
//必赢局至少有一个可能转化为必败局
//基于这两种方式可以做到两种dfs
//即必赢局dfs和必败局dfs(两种理解方式更深入理解博弈论)
using namespace std;
//dfs 返回为true,则本局为必赢局
map<string,bool>m;
bool dfs(string s)
{
    
    
  if(m.count(s))//m有s的键值
    return m[s];
  int index=0;
  for(int i=0;i<s.size();++i)
  {
    
    
    if(s[i]=='O')
      ++index;
  }
  if(index==1)
    return m[s]=false;//只有一个可选,为必败局
  //只要找到一个能形成的必败局,这局就是必赢局。
  for(int i=0;i<s.size();++i)
  {
    
    
    if(s[i]=='O')
    {
    
    
      string ss=s;
      ss[i]='X';
      if(!dfs(ss))//下一局为必败局
        return m[s]=true;
    }
  }
  for(int i=0;i<s.size();++i)
  {
    
    
    if(s[i]=='O'&&s[i+1]=='O'&&i!=3)
    {
    
    
      string ss=s;
      ss[i]=ss[i+1]='X';
      if(!dfs(ss))
        return m[s]=true;
    }
  }
  return false;//没找到则是必败局
}
int main()
{
    
    
  // 请在此输入您的代码
  string s[4]={
    
    "XOOOOOOO","XXOOOOOO","OXOOOOOO","OXXOOOOO"};
  for(int i=0;i<4;++i)
  {
    
    
    if(dfs(s[i]))//对手是必赢局
      cout<<"L";
    else
      cout<<"V";
  }
  return 0;
}
//dfs返回为true,则本局为必败局
// map<string,bool>m;
// bool dfs(string s)
// {
    
    
//   if(m.count(s))
//     return m[s];
//   int index=0;
//   for(int i=0;i<s.size();++i)
//   {
    
    
//    if(s[i]=='O')
//     ++index;
//   }
//   if(index==1)
//     return m[s]=true;
//   if(index==0)
//     return m[s]=false;
//   for(int i=0;i<s.size();++i)
//   {
    
    
//     if(s[i]=='O')
//     {
    
    
//       string ss=s;
//       ss[i]='X';
//       if(dfs(ss))
//         return m[s]=false; 
//     }
//   }
//   for(int i=0;i<s.size();++i)
//   {
    
    
//     if(s[i]=='O'&&s[i+1]=='O'&&i!=3)
//     {
    
    
//       string ss=s;
//       ss[i]=ss[i+1]='X';
//       if(dfs(ss))
//         return m[s]=false;
//     }
//   }
//   return true;
// }
// int main()
// {
    
    
//   // 请在此输入您的代码
//   string s[4]={"XOOOOOOO","XXOOOOOO","OXOOOOOO","OXXOOOOO"};
//   for(int i=0;i<4;++i)
//   {
    
    
//     if(dfs(s[i]))
//       cout<<"V";
//     else
//       cout<<"L";
//   }
//   return 0;
// }

06 エクササイズ

問題の説明
Xiaolan は蘭橋杯の練習システムについて質問しています。
問題を解決するために、彼はプログラムを作成し、問題に示されているいくつかの例をコンピュータ上で試しましたが、すべて正しい結果が得られました。しかし
、プログラムを練習システムに提出すると、0 点
をですか?以下のオプションから考えられる理由をすべて選択してください。
A. 質問の例は一般に比較的小さく、評価中に使用される評価ケースは比較的
大きいです。Xiaolan のプログラムは小さなサンプルでは解決できますが、
大きな評価ケースでは時間がかかりすぎ質問によって要求されます。
B. Xiaolan はメモリを多量に使用します。Xiaolan は自分のコンピュータでは正しく動作しますが、
評価のメモリ制限内では動作できません。
C. Xiaolan のプログラムにはいくつかの欠陥があります。問題のサンプルは比較的小さいため、Xiaolan のプログラムは
対応する結果を得ることができます。しかし、評価のユースケースがより複雑な場合、Xiaolan のプログラムは
正しい結果を得ることができません。
答えを提出する
これは穴埋め問題ですので、結果を計算して提出するだけです。この質問の結果は
、選択したオプションがアルファベット順に指定された大文字で構成される文字列です。
回答を送信する場合にのみ、この文字列を入力してください。追加のコンテンツを入力してもポイントは付与されません。たとえば、
すべての選択肢が正しい場合は、答え ABC を入力してください。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    
    
  printf("ABC");// 请在此输入您的代码
  return 0;
}

07 並べ替え

質問の説明:
この質問は穴埋め形式の質問です。結果を計算し、コード内の出力ステートメントを使用して埋められた結果を出力するだけです。
Xiao Lan さんは最近、いくつかのソート アルゴリズムを学びました。その中でもバブル ソートに深い感銘を受けました。
バブル ソートでは、一度に 2 つの隣接する要素のみを交換できます。
Xiao Lan は、文字列内の文字がソートされ、隣接する 2 つの
文字のみが交換される場合、バブル ソートの交換の総数は、すべての可能なソート スキームの中で最小になることを発見しました
たとえば、文字列 lan ソートの場合、必要な交換は 1 つだけです。文字列qiaoソートの場合
、合計4回の交換が必要です。
Xiaolan はたくさんの文字列を見つけて分類しようとしたところ、100 回の交換が必要な文字列を偶然見つけましたが、
メモするのを忘れてしまい、今では見つけることができません。
Xiaolan が英小文字のみを含み、繰り返し文字が含まれていない文字列を見つけるのを手伝ってください。この文字列の文字を並べ替えるには、ちょうど 100 回の交換が必要です。複数見つけられる場合は、最短のものをシャオランに教えてください。まだ短いものが複数ある場合は、辞書順が最も小さいものを Xiaolan に伝えてください。

#include <stdio.h>
#include <stdlib.h>
char* init(char a[26],char s[26]); 
int count(char s[26],int n);//排序次数
int main(int argc, char *argv[])
{
    
    
  // 请在此输入您的代码
  char s[26]={
    
    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
  char a[26];
  int len=0;
  int k;
  int c;
  for(int i=0;i<26;i++){
    
    
      char *m=init(a,s);
      int c=count(a,len);
      len++;
      if(c>100){
    
    
          k=c;
          break;
    }
  }
  init(a,s);
  len--;
  char result[len];
  for(int i=0;i<len;i++){
    
    
      result[i]=s[len-1-i];
  }
  int m=k-100;//第几位放在最前面 
  char x=result[m];
  for(int i=m-1;i>=0;i--){
    
    
      char g=result[i];
      result[i]=result[i+1];
      result[i+1]=g;
  }
  printf("%s",result);
  return 0;
}
int count(char s[26],int n){
    
    
  int a=0;
  for(int i=0;i<n;i++){
    
    
    for(int j=0;j<n-1;j++){
    
    
      if(s[j]-'0'>s[j+1]-'0'){
    
    
          a++;
          char k=s[j];
          s[j]=s[j+1];
          s[j+1]=k;
      }
    }
  }
  return a;
}
char* init(char a[26],char s[26]){
    
    
    char m[26];
    for(int i=0;i<26;i++){
    
    
    a[i]=s[25-i];
    m[i]=a[i];
  }
  return m;
}

08 算術素数列

質問の説明
この質問は穴埋め問題です。結果を計算し、コード内の出力ステートメントを使用して埋められた
結果を出力するだけです。
2,3,5,7,11,13,... は素数の列です。7,37,67,97,127,157 と同様に、
完全に素数で構成される算術数列を算術素数列と呼びます。
上記のシーケンスの許容値は 30、長さは 6 です。2004 年、グリーンは中国人のテレンス・タオと共同で、任意の長さの素数の
算術数列が存在することを証明しました。
これは数論の分野では驚くべき結果です。
この理論に基づいて、手元のコンピューターを使用して自信を持って検索してください。
長さ 10 の算術素数列の最小許容誤差はいくらですか?

#include <stdio.h>
int main()
{
    
    
  printf("210");    对于长度为k的素数等差数列,它们的公差能被小于k的所有素数整除。故为2*3*5*7=210
}
#include <iostream>
using namespace std;
bool Sushu(int n){
    
    
  for(int i=2;i<n/2;i++)
  {
    
    
    if(n%i==0)
      return false;
  }
  return true;
}
int main()
{
    
    
  for(int i=2;i<1000000;i++){
    
    
    if(Sushu(i)){
    
    
      for(int k=1;k<10000;k++){
    
    
        if(Sushu(i+1*k)&&Sushu(i+2*k)&&Sushu(i+3*k)&&Sushu(i+4*k)&&Sushu(i+5*k)&&Sushu(i+6*k)&&Sushu(i+7*k)&&Sushu(i+8*k)&&Sushu(i+9*k))
          {
    
     
            cout<<k;
            return 0;
          }
      }
    }
  }
  return 0;
}

09 セブンセグメントコード

問題の説明:
Xiaolan は、7 セグメントのデジタル チューブを使用して特殊なテキストを表現したいと考えています。
ここに画像の説明を挿入します

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
    
    
  // 请在此输入您的代码
  int sum = 0;
    //有一段二极管发光; a,b,c,d,e,f,g
    int l1 = 7;
    //有两段二极管发光; ab,af,bc,bg,cg,cd,de,eg,ef,fg
    int l2 = 10;
    //有三段二极管发光; abf,abc,abg,afg,afe,bcd,bcg,bgf,bge,cgd,cgf,cge,cde,cdg,deg,def,efg
    int l3 = 16;//
    //有四段二极管发光; abcd,abcg,abcf,abge,abgf,abfe,afeg,bcde,bcdg,bcgf,bcge,bged,bgef,cdef,cdeg,cdgf,cgfa,cgfe,defg,defa
    int l4 = 20;
    //有五段二极管发光即有两端不发光; ab,ac,ad,ae,af,ag,bc,bd,be,bg,cd,cf,cg,de,df,dg,ef,eg,fg
    int l5 = 19;//
    //有六段二极管发光即有一端不发光; a,b,c,d,e,f,g
    int l6 = 7;//(找一段二极管不发光的:)
    //第七种情况,全部发光
    int l7 = 1;
    
    sum = l1 + l2 + l3 + l4 + l5 + l6 + l7;
    printf("%d\n", sum);
  return 0;
}

10 三角回文数

ここに画像の説明を挿入します

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    
    
  int x=0;//记录三角数
  for(int i=1;;i++){
    
    //查找三角数
    x+=i;
    if(x>20220514){
    
    //大于20220514,验证是否为回文数
      int b=x;
      int a=0;
      while(b!=0){
    
    //将三角数倒置放入a中储存
        a=a*10+b%10;
        b/=10;
      }
      if(a==x){
    
    //比较a是否等于x,相等说明x为三角回文数
        printf("%d",x);
        break;
      }
      a=0;//不是,重置a进入下一次验证
    }
  }
  return 0;
}

おすすめ

転載: blog.csdn.net/weixin_74774974/article/details/133278671